Tornado AsyncHTTPClient()块
我目前正在使用以下代码获取URL的主体:Tornado AsyncHTTPClient()块,tornado,Tornado,我目前正在使用以下代码获取URL的主体: httpClient=AsyncHTTPClient() try: response=yield httpClient.fetch(url) # do something with response.body except (HTTPError, IOError, ValueError) as e: pass 然而,获取整个身体似乎不是执行此操作的有效方法,因为我正在URL中
httpClient=AsyncHTTPClient()
try:
response=yield httpClient.fetch(url)
# do something with response.body
except (HTTPError, IOError, ValueError) as e:
pass
然而,获取整个身体似乎不是执行此操作的有效方法,因为我正在URL中搜索一段特定信息。是否有可能在找到我要查找的内容后,将URL的整个主体分块提取并停止,或者在需要时继续提取
我也在为一些URL做这件事。我看到您可以使用以下功能:
httpclient.HTTPRequest(url='[some_big_request]', streaming_callback=self.on_chunk)
但是,一旦我进入回调函数,我如何从该函数中获取所需的信息?我需要将该值与我从其他URL获得的值结合起来…看看的
streaming\u callback
如果设置,streaming\u回调
将在接收到每个数据块时运行,HTTPResponse.body
和HTTPResponse.buffer
将在最终响应中为空
因为回调可以是闭包,所以它可以访问外部数据。在调用
tornado.httpclient.asynchtpclient.fetch
的块中定义此函数。您可以访问所有必要的内容。请查看的流式处理回调
如果设置,streaming\u回调
将在接收到每个数据块时运行,HTTPResponse.body
和HTTPResponse.buffer
将在最终响应中为空
因为回调可以是闭包,所以它可以访问外部数据。在调用tornado.httpclient.asynchtpclient.fetch
的块中定义此函数。您可以访问所有必要的内容。使用带有关闭或部分关闭的流式\u回调
:
def f():
response = yield client.fetch(url, functools.partial(self.on_fetch, url))
def on_fetch(self, url, chunk):
# do something with chunk
当前无法在流式_回调中取消提取;下载将继续运行到完成 使用带有关闭或部分关闭的流式\u回调
:
def f():
response = yield client.fetch(url, functools.partial(self.on_fetch, url))
def on_fetch(self, url, chunk):
# do something with chunk
当前无法在流式_回调中取消提取;下载将继续运行到完成 好的,谢谢,我会尝试一下,我需要装饰回调吗?在回调中也有一次,我发现需要,我需要如何使提取停止执行?好的,谢谢,我会尝试一下,我需要装饰回调吗?在回调中也有一次,我发现需要,我需要如何使提取停止执行?好的,谢谢Ben。实际上,我想这样做的唯一原因是,一旦我找到我想要的东西,就停止提取,从而有可能节省带宽。。。我已经读过关于抓取并行性的文章,并且认为这可能是一个更好的选择,因为我是在OK Ben之前连续加载的。实际上,我想这样做的唯一原因是,一旦我找到我想要的东西,就停止提取,从而有可能节省带宽。。。我已经读过关于获取的并行性的文章,并且认为这可能是一个更好的选择,因为我以前是串行加载的