Python 发送许多post请求

Python 发送许多post请求,python,python-requests,http-post,python-multiprocessing,Python,Python Requests,Http Post,Python Multiprocessing,我对Python和请求比较陌生,所以我不确定最好的方法 我需要向URL发送大量POST请求。现在,我只是使用一个循环并发送请求,根据互联网的不同,大约每10-30秒产生100篇帖子。我正在寻找一种方法,以更快地完成这一点,并与更多的职位。向我推荐多处理,但我在这里的知识非常缺乏(我已经冻结了我的计算机,试图产生太多的进程) 如何有效地实现多处理以提高结果?以下是一个代码示例,可以解决您的问题。它使用请求库为异步调用发出请求和异步IO。你唯一需要做的改变就是从一个GET电话改为一个POST电话 这

我对Python和请求比较陌生,所以我不确定最好的方法

我需要向URL发送大量POST请求。现在,我只是使用一个循环并发送请求,根据互联网的不同,大约每10-30秒产生100篇帖子。我正在寻找一种方法,以更快地完成这一点,并与更多的职位。向我推荐多处理,但我在这里的知识非常缺乏(我已经冻结了我的计算机,试图产生太多的进程)


如何有效地实现多处理以提高结果?

以下是一个代码示例,可以解决您的问题。它使用请求库为异步调用发出请求和异步IO。你唯一需要做的改变就是从一个GET电话改为一个POST电话

这是用Python 3.5编写的(如本文所述)


我还建议阅读整篇文章,因为它显示了使用大量线程时的时间比较。

这里没有理由使用多处理。对HTTP服务器的请求几乎完全是I/O绑定的,而不是CPU绑定的,所以线程工作正常

在stdlib文档中使用
ThreadPoolExecutor
的第一个示例完全符合您的要求,除了使用
urllib
而不是
请求


如果你在做任何复杂的事情,看看



如果出于某种原因确实需要使用多处理(例如,您正在对每个结果进行大量文本处理,并且您希望将其与请求并行处理),您只需将
ThreadPoolExecutor
切换为
ProcessPoolExecutor
,而无需更改代码中的任何其他内容。

如果您不打算在任何地方使用异步套接字,您真的不需要将
asyncio
添加到等式中。它只是运行一个循环,将所有内容分派给线程池执行器,这更易于直接使用。包含代码中的示例将有助于显示您当前正在做的事情,以及您认为需要改进的方面。谢谢
# Example 2: asynchronous requests
import asyncio
import requests

async def main():
    loop = asyncio.get_event_loop()
    futures = [
        loop.run_in_executor(
            None, 
            requests.get, 
            'http://example.org/'
        )
        for i in range(20)
    ]
    for response in await asyncio.gather(*futures):
        pass

loop = asyncio.get_event_loop()
loop.run_until_complete(main())