gpt4 book ai didi

python - 在 Python 中处理多个 http 请求

转载 作者:太空宇宙 更新时间:2023-11-04 09:47:08 25 4
gpt4 key购买 nike

我正在通过 Python 中的数据抓取从网站中挖掘数据。我正在使用 request 包来发送参数。

这是 Python 中的代码片段:

   for param in paramList:
data = get_url_data(param)


def get_url_data(param):
post_data = get_post_data(param)

headers = {}
headers["Content-Type"] = "text/xml; charset=UTF-8"
headers["Content-Length"] = len(post_data)
headers["Connection"] = 'Keep-Alive'
headers["Cache-Control"] = 'no-cache'

page = requests.post(url, data=post_data, headers=headers, timeout=10)
data = parse_page(page.content)
return data

变量 paramList 是一个包含 1000 多个元素的列表,端点 url 保持不变。我想知道是否有更好更快的方法来做到这一点?

谢谢

最佳答案

由于涉及大量的网络 I/O,线程应该可以显着提高整体性能。
您可以尝试使用 ThreadPool 并应测试线程数并将其调整为最适合情况并显示整体最高性能的线程数。

from multiprocessing.pool import ThreadPool

# Remove 'for param in paramList' iteration

def get_url_data(param):
# Rest of code here

if __name__ == '__main__':
pool = ThreadPool(15)
pool.map(get_url_data, paramList) # Will split the load between the threads nicely
pool.close()

关于python - 在 Python 中处理多个 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49349186/

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