печатать только один тег 'tr' в 'tbody' - Beautifulsoup - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь напечатать содержимое только одного тега 'tr' в 'tbody'. Я использовал этот код, чтобы напечатать все tr в tbody, но Python не печатает мне tr после Берлина. Я использовал этот URL: https://interaktiv.morgenpost.de/corona-virus-karte-infektionen-deutschland-weltweit/?fbclid=IwAR0xb7zTV0vstu-sLE3ByHZVSw89HyqjSwMhpfXT23RwcFqR57za2J_l7XQ. Это таблица, которую я хочу напечатать полностью: https://i.stack.imgur.com/i869g.png

from bs4 import BeautifulSoup
from selenium import webdriver 


browser = webdriver.Chrome()
url = "https://interaktiv.morgenpost.de/corona-virus-karte-infektionen-deutschland-weltweit/?fbclid=IwAR0xb7zTV0vstu-sLE3ByHZVSw89HyqjSwMhpfXT23RwcFqR57za2J_l7XQ"
browser.get(url)
soup = BeautifulSoup(browser.page_source, "html.parser")



allStat = {}

table_body = soup.find('tbody')
table_rows = table_body.find_all('tr')

for i in table_rows:
    region = i.find('td', class_ = 'region').get_text()
    confirmed = i.find('td', class_ = 'confirmed').get_text()
    deaths = i.find('td', class_= 'deaths' ).get_text()

    allStat.update({region: [confirmed,deaths]})
print(allStat)

1 Ответ

1 голос
/ 31 марта 2020
from selenium import webdriver
import pandas as pd
from selenium.webdriver.firefox.options import Options

options = Options()
options.add_argument('--headless')
driver = webdriver.Firefox(options=options)

driver.get(
    "https://interaktiv.morgenpost.de/corona-virus-karte-infektionen-deutschland-weltweit/")

btn = driver.find_element_by_css_selector(
    "button.btn.fnktable__expand").click()

df = pd.read_html(driver.page_source)[0]
df.to_csv("data.csv", index=False)

driver.quit()

enter image description here

...