【发布时间】:2016-06-10 15:14:32
【问题描述】:
我正在尝试从下面的晨星网站上抓取数据:
http://financials.morningstar.com/ratios/r.html?t=IBM®ion=USA&culture=en_US
我目前正在尝试只做 IBM,但希望最终能够输入另一家公司的代码并用那家公司做同样的事情。到目前为止,我的代码如下:
import requests, os, bs4, string
url = 'http://financials.morningstar.com/ratios/r.html?t=IBM®ion=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 代码,并以某种方式生成了一个不同的网络链接,该链接设法抓取了数据,但我不明白它来自哪里?
【问题讨论】:
-
我已经构建了一个 api 来获取晨星溢价数据morningstar-api.herokuapp.com/analysisData?ticker=AAPL
标签: python json beautifulsoup