我正在尝试使用urllib2和beautifulSoup抓取此网站https://www.spdrs.com/product/fund.seam?ticker=SPY。但是,我认为我从urllib2获得的html不完整。如下所示,节点<span>
之间的任何内容都不是从urllib2读取的字符串的一部分。
<span xmlns="http://www.w3.org/1999/xhtml" id="performancePanel">
bunch of divs in here.
</span>
为什么会这样?我怀疑它与xmlns有关,因为我从未见过有人将此属性放在跨度上。
答案 0 :(得分:1)
如果您在浏览器中查看源代码,您将获得urllib获取的相同视图。
你可以看到它是这样的:
<span id="performancePanel"></span>
注意该范围内没有div。 div由javascript填充。 查看源代码的底部,您将看到一些js代码和注释
<!-- load performance and holdings content by ajax -->
我认为这是它被加载的地方。
由于数据是通过javascript加载的,因此除非你对javascript进行反向工程并弄清楚它所使用的底层API然后刮掉它们,否则很难通过urllib进行抓取。
如果这太难了,您可能需要调查使用selenium来抓取数据。