Python流式HTTP客户端保持连接

1 投票
2 回答
5606 浏览
提问于 2025-04-15 19:57

我需要一个可以重用连接的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 这个工具支持保持连接,并且可以返回一个像文件一样的对象。

撰写回答