收到特定字节数后停止下载?

时间:2013-08-20 08:59:02

标签: python

有没有办法在收到一定数量的字节后停止从URL下载?

在PHP中有:

$contents = @file_get_contents($page, FALSE, NULL, 0, 40000);

第五个参数告诉file_get_contents在40000字节后停止下载。我基本上在寻找类似Python的东西。在Google上搜索和阅读文档并没有产生任何结果。帮助会很棒,我是Python的新手。

感谢。

2 个答案:

答案 0 :(得分:5)

的urllib

如果您使用urllib.urlopen

>>> import urllib
>>> u = urllib.urlopen('http://stackoverflow.com')
>>> x = u.read(1000)
>>> len(x)
1000
>>> u.close()

urllib.urlopen返回类似文件的对象;您可以指定要下载的字节数。

请求

>>> import requests 
>>> r = requests.get('http://stackoverflow.com', stream=True) 
>>> x = next(r.iter_content(1000), '')[:1000] # iter_content() could yield more than requested; need [:1000]
>>> len(x) 
1000

答案 1 :(得分:0)

我不是python的专家,但这似乎可以完成这项工作:

 req = urllib2.urlopen(url)
 CHUNK = 4000
 chunk = req.read(CHUNK)