gpt4 book ai didi

python - 从 Morningstar 抓取财务数据

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:07 25 4
gpt4 key购买 nike

我正在尝试从下面的 morningstar 网站抓取数据:

http://financials.morningstar.com/ratios/r.html?t=IBM&region=USA&culture=en_US

我目前正在尝试只做 IBM,但希望最终能够输入另一家公司的代码,并用另一家公司做同样的事情。到目前为止,我的代码如下:

import requests, os, bs4, string



url = 'http://financials.morningstar.com/ratios/r.html?t=IBM&region=USA&culture=en_US';
fin_tbl = ()


page = requests.get(url)

c = page.content

soup = bs4.BeautifulSoup(c, "html.parser")


summary = soup.find("div", {"class":"r_bodywrap"})

tables = summary.find_all('table')

print(tables[0])

我目前遇到的问题与我抓取的更简单的网页不同,该程序似乎无法找到任何表格,即使我可以在该页面的 HTML 中看到它们也是如此。

在研究这个问题时,最接近的 stackoverflow 问题如下:

Python webscraping - NoneObeject Failure - broken HTML?

在那篇文章中,他们解释说 Morningstar 的表格是动态加载的,并使用了一些我不熟悉的 json 代码,并以某种方式生成了一个不同的网络链接,该链接成功地抓取了数据,但我不明白它是从哪里来的?

最佳答案

抓取一些现代网页是一个真正的问题,特别是在单页应用程序生成的页面上(其中内容由 AJAX 调用和 DOM 修改维护,而不是在单个服务器响应中作为现成的 HTML 交付) .

我发现访问此类内容的最佳方法是使用 Selenium 网络测试环境让浏览器在我的程序控制下加载页面,然后从 Selenium 中提取页面内容以进行抓取。还有其他环境可以执行脚本并适本地修改 DOM,但我没有使用过它们中的任何一个。

这并不像听起来那么难,但您需要花些时间才能到达那里。

关于python - 从 Morningstar 抓取财务数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35668091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com