在Python中打开一个URL并获得X个字节的最佳方式是什么?
我希望有一个机器人每小时获取一个URL,但如果该网站的操作员是恶意的,他可以让他的服务器发送一个1 GB的文件。有没有一种好的方法可以将下载限制为100KB,并在限制之后停止下载?在Python中打开一个URL并获得X个字节的最佳方式是什么?
我可以想象从头开始编写自己的连接处理程序,但是我想尽可能使用urllib2,只是以某种方式指定限制。
谢谢!
这可能是你在找什么:
import urllib
def download(url, bytes = 1024):
"""Copy the contents of a file from a given URL
to a local file.
"""
webFile = urllib.urlopen(url)
localFile = open(url.split('/')[-1], 'w')
localFile.write(webFile.read(bytes))
webFile.close()
localFile.close()
阅读()需要一个非常简单的方法。一个字节参数?这太棒了,这正是我想要的,非常感谢你!我一直无法在文档中找到它... – 2010-06-06 23:59:08
http://docs.python.org/library/stdtypes.html#file.read(python的文件对象的最重要的方法几乎全部实现) – 2010-06-07 00:17:35
谢谢,我知道file.read(),但没有意识到在url.read()中实现了相同的语义... – 2010-06-07 00:49:14
这是读X字节'了urllib.urlopen( “URL”)阅读(1024)' – 2013-10-18 23:09:47