中断urllib.read

时间:2014-02-11 20:42:13

标签: python http

我编写了一个监视中断下载的服务器应用程序。现在我想用python创建一个测试用例。到目前为止,我已经想出了如何下载整个页面。但是,如何告诉程序在完成之前或在特定数量的下载字节之后停止下载?这是我完整下载的代码......

opener = urllib2.build_opener()
response = opener.open(TARGET_URL)
data = response.read() // how to interrupt before completion?

1 个答案:

答案 0 :(得分:1)

使用小于内容大小的数字参数调用read(),然后删除连接:

>>> import urllib2
>>> opener = urllib2.build_opener()
>>> response = opener.open('http://downloads.raspberrypi.org/NOOBS_latest')
>>> response.read(4)
'PK\x03\x04'
>>> response.close()

这并不保证它会从服务器读取四个字节,但如果内容足够大(对于“足够大”的某些定义),它将不会获取整个URL。