Urllib2 urlopen html不完整

时间:2013-11-21 21:20:37

标签: python urllib2

我正在尝试使用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有关,因为我从未见过有人将此属性放在跨度上。

1 个答案:

答案 0 :(得分:1)

如果您在浏览器中查看源代码,您将获得urllib获取的相同视图。

你可以看到它是这样的:

<span id="performancePanel"></span>

注意该范围内没有div。 div由javascript填充。 查看源代码的底部,您将看到一些js代码和注释

<!-- load performance and holdings content by ajax -->

我认为这是它被加载的地方。

由于数据是通过javascript加载的,因此除非你对javascript进行反向工程并弄清楚它所使用的底层API然后刮掉它们,否则很难通过urllib进行抓取。

如果这太难了,您可能需要调查使用selenium来抓取数据。