在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文件?为什么我的代码不起作用?
答案 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