Get the content of multiple classes when scraping a website

Viewed 645

The problem that I am facing is simple. If I am trying to get some data from a website, there are two classes with the same name. But they both contain a table with different Information. The code that I have only outputs me the content of the very first class. It looks like this:

page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
results = soup.find("tr", {"class": "table3"})
print(results.prettify())

How can I get the code to put out either the content of both tables or only the content of the second one? Thanks for your answers in advance!

1 Answers

You can use .find_all() and [1] to get second result. Example:

from bs4 import BeautifulSoup

txt = """
<tr class="table3"> I don't want this </tr>
<tr class="table3"> I want this! </tr>
"""

soup = BeautifulSoup(txt, "html.parser")

results = soup.find_all("tr", class_="table3")
print(results[1])  # <-- get only second one

Prints:

<tr class="table3"> I want this! </tr>
Related