urllib2没有返回完整的网页

时间:2012-03-01 13:18:44

标签: python web-scraping

我刚刚开始使用Python,并且我尝试使用urllib2请求网站的html源代码。然而,当我尝试从网站获取html内容时,我没有获得完整的html内容 - 缺少标签。我知道他们失踪了,因为当我在firebug中查看代码显示的网站时。这是由于我申请数据的方式 - 还是由于网站的原因?如果是这样,我可以在python中获取网站的完整源代码,然后解析它?

目前我用来请求内容的代码和我尝试的网站是:

import urllib2

url = 'http://marinetraffic.com/ais/'
response = urllib2.urlopen(url)
html = response.read()
print(html)

具体是 - div id =" map_area"之间的内容。 - 不见了。任何帮助/指针非常感谢!

2 个答案:

答案 0 :(得分:4)

您收到的数据不完整,因为此页面上的大多数内容都是通过Javascript动态生成的...

答案 1 :(得分:0)

read返回的描述符上的

urlopen仅返回已下载的内容。所以你很容易得到简短的阅读。您最好使用urllib.urlretrieve(),它会尝试获取整个文件,检查Content-Length标头,如果失败则会引发错误。