如何使用python请求库同时处理多个url

问题描述 投票:0回答:1

更喜欢坚持使用 Python Requests 库。虽然我在 Google 和 Stack Overflow 上进行了搜索,但我只找到了涉及 asyncio 或类似库的解决方案,没有任何关于将其与 python Requests 库结合使用的明确指导。

这就是我想要做的:我有一个包含 1000 个 URL 的列表,并且我想在每批中一起处理 100 个 URL。这意味着我将循环该列表 10 次,每次循环处理 100 个 URL。这种方法比逐个处理每个 URL 快得多。现在,如果我有 1001 个 URL 怎么办?我怎样才能使这个工作适用于像 10001 或 507 这样的奇数?”

def req_proxy(url: str, http_flag: bool):
    response = requests.get(url, verify=http_flag)
    return response


url_list = [] #assume I have 1k url
for link in url_list:
    res = req_proxy(link,http_flag=True)
    print(res.text)
python python-3.x asynchronous python-requests
1个回答
0
投票

您的标题和您提供的示例似乎正在解决两个不同的问题。如果您需要并发,最好是使用 asyncio。如果你只是想批量解析 URL,那就是另一回事了。

# you can choose any number you want
# you can also make it dynamic, e.g. depending on the number of URLs
BATCH_SIZE = 100

url_list = [] #assume I have 1k url
offset = 0
while url_list(offset:offset + BATCH_SIZE):
    for link in url_list[offset:offset + BATCH_SIZE]:
        res = req_proxy(link,http_flag=True)
        print(res.text)
    offset += BATCH_SIZE

这将解析直到列表末尾,如果 URL 的长度不是 BATCH_SIZE 的倍数,最后一个列表将更小。

© www.soinside.com 2019 - 2024. All rights reserved.