python同时发大量请求,Python:如何发送多个HTTP请求并接收响应?

How can I send like 1000 requests the fastest way?

I know that you can send multiple request with grequests:

urls = [

'sample.url/1',

'sample.url/2',

...

]

request = (grequests.get(u) for u in urls)

print grequests.map(request)

But the return is not the content.

What I need is to get the json data, so for example something like this:

request = (grequests.get(u) for u in urls)

content = grequests.json(request)

解决方案

The items returned are not the content, but they do include the content. You can fetch all of the content like so:

result = grequests.map(request)

content = '\n'.join(r.content for r in result) # raw content

text = '\n'.join(r.text for r in result) # decoded content

You can parse the json like this:

result = grequests.map(request)

json = [r.json() for r in result]

Sample program:

import grequests

import pprint

urls = [

'http://httpbin.org/user-agent',

'http://httpbin.org/headers',

'http://httpbin.org/ip',

]

requests = (grequests.get(u) for u in urls)

responses = grequests.map(requests)

json = [response.json() for response in responses]

pprint.pprint(json)

text = '\n'.join(response.text for response in responses)

print(text)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值