urllib2下载HTML文件

时间:2013-12-18 23:50:23

标签: python python-2.7 urllib2

在Python 2.7.4中使用urllib2,我可以随时下载Excel文件:

output_file = 'excel.xls'
url = 'http://www.nbmg.unr.edu/geothermal/GEOTHERM-30Jun11.xls'
file(output_file, 'wb').write(urllib2.urlopen(url).read())

这会产生我可以随意使用的预期文件。

但是,尝试只下载一个HTML文件会给我一个空文件:

output_file = 'webpage.html'
url = 'http://www.nbmg.unr.edu/geothermal/mapfiles/nvgeowel.html'
file(output_file, 'wb').write(urllib2.urlopen(url).read())

我使用urllib获得了相同的结果。必须有一些简单的我缺少或不理解。如何从URL下载HTML文件?为什么我的代码不起作用?

3 个答案:

答案 0 :(得分:3)

如果您想下载文件或只是保存网页,您可以使用urlretrieve(来自urllib库)而不是使用读写。

import urllib
urllib.urlretrieve("http://www.nbmg.unr.edu/geothermal/mapfiles/nvgeowel.html","doc.html")
#urllib.urlretrieve("url","save as..")

如果您需要设置超时,则必须将其放在文件的开头:

import socket
socket.setdefaulttimeout(25)
#seconds

答案 1 :(得分:1)

在我的OS X 10.9中也是Python 2.7.4,代码也很好用。

所以我认为可能存在其他问题阻碍其工作。你能在浏览器中打开“http://www.nbmg.unr.edu/geothermal/GEOTHERM-30Jun11.xls”吗?

答案 2 :(得分:0)

这可能无法直接回答这个问题,但是如果你正在使用HTTP并且有足够的权限安装python包,我真的建议用'requests'来做这件事。这里有一个相关的答案 - https://stackoverflow.com/a/13137873/45698