首页 > 解决方案 > 从网站收集数据时同时发送多个 http 请求的最佳方式

问题描述

我从一个网站收集数据以通过 Python 进行 AI 培训。我分别向网站的索引发送请求。解析 html 后,如果我在 html 中找到对我的目的有意义的数据,我会保存它并将请求发送到另一个索引。有超过 500 万个网站需要检查。所以我认为我应该一次发送多个请求。否则,我无法完成它们。

我正在寻找同时发送多个请求的最佳方式。我知道方法:线程、多个 python 脚本、异步函数。但我不确定最好的方法。

谢谢你。

标签: python

解决方案


我会使用Requests Futures,它是一个非常简单的 Requests 异步包装器,您可以按如下方式使用它:

from concurrent.futures import as_completed
from requests_futures.sessions import FuturesSession

with FuturesSession() as session:
    futures = [session.get(url) for url in urls]
    for future in as_completed(futures):
        res = future.result()
        print(res.json())

推荐阅读