gpt4 book ai didi

Python:url 内容的简单异步下载?

转载 作者:太空狗 更新时间:2023-10-29 19:36:19 25 4
gpt4 key购买 nike

我有一个响应各种用户请求的 web.py 服务器。其中一个请求涉及下载和分析一系列网页。

有没有一种简单的方法可以在 web.py 中设置基于异步/回调的 url 下载机制?低资源使用率尤为重要,因为每个用户发起的请求都可能导致下载多个页面。

流程看起来像:

用户请求->web.py->并行或异步下载10个页面->分析内容,返回结果

我知道 Twisted 是实现此目的的好方法,但我已经在 web.py 中了,所以我对适合 web.py 的东西特别感兴趣。

最佳答案

这是一段有趣的代码。我自己没用过,但看起来不错 ;)

https://github.com/facebook/tornado/blob/master/tornado/httpclient.py

低级 AsyncHTTPClient:

“一个由 py​​curl 支持的非阻塞 HTTP 客户端。示例用法:”

import ioloop

def handle_request(response):
if response.error:
print "Error:", response.error
else:
print response.body
ioloop.IOLoop.instance().stop()

http_client = httpclient.AsyncHTTPClient()
http_client.fetch("http://www.google.com/", handle_request)
ioloop.IOLoop.instance().start()

"fetch() 可以采用字符串 URL 或 HTTPRequest 实例,后者提供更多选项,例如执行 POST/PUT/DELETE 请求。

AsyncHTTPClient 构造函数的关键字参数 max_clients 确定可以在每个 IOLoop 上并行执行的同时 fetch() 操作的最大数量。"

还有新的实现正在进行中: https://github.com/facebook/tornado/blob/master/tornado/simple_httpclient.py“没有外部依赖项的非阻塞 HTTP 客户端。...此类仍在开发中,尚不推荐用于生产用途。”

关于Python:url 内容的简单异步下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/668257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com