【问题标题】:BeautifulSoup - Can't get tbodyBeautifulSoup - 无法得到身体
【发布时间】:2021-06-25 16:25:21
【问题描述】:

我正在尝试获取位于多个嵌套内的表。 我是 Beautifulsoup 的新手,我练习了一些简单的 eeemples。 问题是,我不明白为什么我的代码无法获得具有“Explorer is-embed”类的“div”标签。 因为从那时起,我可以更深入地找到我想要抓取的所有数据所在的 tbody。 提前感谢您的帮助。

下面是我的代码:

url = "https://ourworldindata.org/covid-cases"
url_content = requests.get(url)
soup = BeautifulSoup(url_content.text, "lxml")
########################
div1 = soup3.body.find_all("div", attrs={"class":"content-wrapper"})
div2 = div1[0].find_all("div", attrs={"class":"offset-content"})
sections = div2[0].find_all('section')
figure = sections[1].find_all("figure")
div3 = figure[0].find_all("div")
div4 = div3[0].find_all("div")

这是我没有得到的“div”标签的快照。 Figure

【问题讨论】:

    标签: python html beautifulsoup html-tbody


    【解决方案1】:

    数据是动态加载的。相反,获取公共源 csv(其他可用格式)

    https://ourworldindata.org/coronavirus-source-data

    import pandas as pd
    
    df = pd.read_csv('https://covid.ourworldindata.org/data/owid-covid-data.csv')
    df.head()
    

    您在每日新增确诊 COVID-19 病例(每 100 万)中看到的值 表格是根据与该文件中的相同数据计算的,用于比较的两个日期,例如

    【讨论】:

    • 感谢您的回复,但这不是我要找的桌子。我正在寻找的标题是“每日新确认的 COVID-19 病例(每 1M)”,您可以通过单击“表格”标签滚动到它。
    • 它们是根据该文件中的数据计算得出的。
    • 感谢您的回答,但这并不能回答我的问题。我主要担心的是我无法使用 Beatifulsoup 获得我正在寻找的表。
    • 我告诉你数据是从 csv 动态提取的。检查浏览器的网络选项卡。它是由我假设处理计算的 js 脚本获取的。
    • 在我回答的第一部分中,我告诉您数据是通过 javascript 动态加载的。也许我应该更清楚地说明您因此无法从您尝试的 url 中获取它,因为 javascript 不会随请求一起运行。您需要使用 selenium,或跟踪数据源。我的回答给你数据源。页面用于动态加载所需内容的相同源 csv。
    猜你喜欢
    • 2021-03-17
    • 2022-08-17
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多