用Python发送10万个HTTP请求的最快方法是什么?

用Python发送10万个HTTP请求的最快方法是什么?我正在打开一个包含10万个URL的文件。我需要向每个URL发送一个HTTP请求并打印状态代码。我正在使用Python2.6,到目前为止,我研究了Python实现线程/并发的许多令人困惑的方式。我甚至看过巨蟒竞合库,但不知道如何正确编写此程序。有没有人遇到过类似的问题?我想,一般来说,我需要知道如何尽可能快地用Python执行数千个任务-我想这意味着‘并发’。

MYYA
浏览 2595回答 3
3回答

红颜莎娜

解决方案龙卷风异步网络库from tornado import ioloop, httpclient i = 0def handle_request(response):     print(response.code)     global i     i -= 1     if i == 0:         ioloop.IOLoop.instance().stop()http_client = httpclient.AsyncHTTPClient()for url in open('urls.txt'):     i += 1     http_client.fetch(url.strip(), handle_request, method='HEAD')ioloop.IOLoop.instance().start()

慕桂英3389331

在这里,线程绝对不是答案。它们将提供进程瓶颈和内核瓶颈,以及如果总体目标是“最快的方式”则不可接受的吞吐量限制。一点点twisted及其异步HTTP客户会给你更好的结果。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python