2014-09-12 30 views
1

我想下载HTML源代码使用urllib2.Request不返回HTML全文线

import urllib2 
from bs4 import BeautifulSoup 
url='http://www.nutritionvalue.org/foods_start_with_A.html' 
hdr={'User-Agent':'Mozilla/5.0'} 
request = urllib2.Request(url,headers=hdr) 
text=urllib2.urlopen(request).read() 
soup=BeautifulSoup(text) 

如果你看一下有问题的HTML代码,你看这条线283网站是超长它包含了我需要的大多数项目链接。但是,urllib2.Request并未完整返回该行。问题是什么?

+0

你想要的输出是什么?哪些链接丢失? – alecxe 2014-09-12 18:25:49

+2

什么是283行? – 2014-09-12 18:26:38

+0

从浏览器中查看页面源代码。请求正在获取服务器发送的所有内容......它只是它的蹩脚的HTML,并没有关闭它自己的表。 – tdelaney 2014-09-12 19:08:01

回答

-1

您的缓冲区可能存在错误。如果出现这种情况,你需要做的是用一个循环来写出你接收到的数据块中的结果。

url='http://www.nutritionvalue.org/foods_start_with_A.html' 
hdr={'User-Agent':'Mozilla/5.0'} 
request = urllib2.Request(url, headers=hdr) 
qrequest = urllib2.urlopen(request) 
text = "" 
chunk = True 
    while chunk: 
     chunk = qrequest.read(1024) 
     text += chunk 
    qrequest.close() 
soup = BeautifulSoup(text) 
+1

在这里不会有帮助...他正在获取所有数据。 – tdelaney 2014-09-12 19:10:43