Python流式HTTP客户端保持连接
我需要一个可以重用连接的Python HTTP客户端,并且支持在数据流进来的时候就开始处理。这将用于解析XML流,采用SAX风格。
我想出了一个解决方案,但不确定这是否是最好的方法(在Python中写HTTP客户端有很多种方式)。
class Downloader():
def __init__(self, host):
self.conn = httplib.HTTPConnection(host)
def get(self, url):
self.conn.request("GET", url)
resp = self.conn.getresponse()
while True:
data = resp.read(10)
if not data:
break
yield data
谢谢大家!
2 个回答
1
还有一个叫做 pycurl 的工具。默认情况下,它的保持连接功能是开启的,你可以把输出写入一个文件。
可以参考一些例子,它们会很有帮助。
1
urlgrabber
这个工具支持保持连接,并且可以返回一个像文件一样的对象。