为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

3 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

解决方案龙卷风异步网络库

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()


查看完整回答
反对 回复 2019-07-05
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

在这里,线程绝对不是答案。它们将提供进程瓶颈和内核瓶颈,以及如果总体目标是“最快的方式”则不可接受的吞吐量限制。

一点点twisted及其异步HTTP客户会给你更好的结果。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 2591 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信