Python-从页面中的特定表中提取数据

Python-从页面中的特定表中提取数据,python,beautifulsoup,Python,Beautifulsoup,刚开始学习python。为这个项目花了整个周末,但进展很糟糕。希望能得到社区的一些指导 我的部分教程要求我从谷歌金融页面提取数据。但只有行业汇总表。然后将它们组织到JSON转储中 到目前为止,我的问题是: 1) 如何仅从部门汇总表中提取数据?我可以找到你所有使用,但结果回来,包括其他表以及 2) 我如何获得每个部门的变化,即:(能源:0.99%,基础材料:0.31%,工业:0.17%)。没有我可以使用的唯一标签。唯一的字符是以下数字与扇区名称相同查看页面(使用查看源代码或浏览器的开发人员工具),

刚开始学习python。为这个项目花了整个周末,但进展很糟糕。希望能得到社区的一些指导

我的部分教程要求我从谷歌金融页面提取数据。但只有行业汇总表。然后将它们组织到JSON转储中

到目前为止,我的问题是:

1) 如何仅从部门汇总表中提取数据?我可以找到你所有使用,但结果回来,包括其他表以及

2) 我如何获得每个部门的变化,即:(能源:0.99%,基础材料:0.31%,工业:0.17%)。没有我可以使用的唯一标签。唯一的字符是以下数字与扇区名称相同查看页面(使用查看源代码或浏览器的开发人员工具),我们知道一些事情:

  • 扇区汇总表是
    div
    标记中唯一一个带有
    id=secperf
    (可能是“扇区性能”的缩写)的表
  • 对于除第一行以外的每一行,左侧的第一个单元格包含扇区名称;左边的第二个包含更改百分比
  • 其他单元格可能包含条形图。条形图也恰好是表,但是我们想忽略它们,所以我们不应该递归到它们中
有很多方法可以做到这一点。一种方法如下:

def sector_summary(document):
    table = document.find(id='secperf').find('table')
    rows = table.find_all('tr', recursive=False)

    for row in rows[1:]:
        cells = row.find_all('td')

        sector = cells[0].get_text().strip()
        change = cells[1].get_text().strip()

        yield (sector, change)

print(dict(sector_summary(my_document)))

给我们一个正确的网址。