如何"break"读出urllib

How to "break" out of urllib read

如果发生特定事件,我想在 url 打开时停止 read。问题是,我不知道该怎么做。 例如:

data = urllib.request.urlopen('http://google.com')
readData = data.read() # How do I stop the reading if certain event occurs?

谢谢

read() 接受一次读取多少字节的参数。例如。 data = read(4096) 只读取 4 kB 一次。读取切片中的数据,并在每个切片后检查中断条件。或者 运行 如果这是不可接受的选项,则在不同的线程中读取循环。

伪Python应该是这样的:

import urllib2

CHUNKSIZE = 4096

r = urllib2.urlopen('http://www.python.org')

buffer = b''

while True:
    chunk = r.read(CHUNKSIZE)
    if not chunk:
        break
    if bad_thing_happened:
        break

    buffer += chunk