Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不使用grequests.map()的延时grequests_Python_Python Requests_Grequests - Fatal编程技术网

Python 不使用grequests.map()的延时grequests

Python 不使用grequests.map()的延时grequests,python,python-requests,grequests,Python,Python Requests,Grequests,这是我第一次尝试使用文档和示例代码级别不理想的库,请耐心等待。我对请求库有一点经验,但我需要每秒向特定地址发送单独的请求: 无需等待第一个请求完成,即可处理 他们进来时的个人反应 响应的内容需要单独解析 同时限制连接的总数 我不知道如何同时满足这些条件grequests.map()将为我提供所需的响应内容,但只有在它们全部完成后才能批量提供grequests.send()似乎只返回不包含网页html文本的响应对象。(关于grequests.send(),我可能错了,但我还没有找到从该对象提取

这是我第一次尝试使用文档和示例代码级别不理想的库,请耐心等待。我对请求库有一点经验,但我需要每秒向特定地址发送单独的请求:

  • 无需等待第一个请求完成,即可处理 他们进来时的个人反应
  • 响应的内容需要单独解析
  • 同时限制连接的总数
我不知道如何同时满足这些条件
grequests.map()
将为我提供所需的响应内容,但只有在它们全部完成后才能批量提供
grequests.send()
似乎只返回不包含网页html文本的响应对象。(关于
grequests.send()
,我可能错了,但我还没有找到从该对象提取内容的示例)

以下是我目前掌握的代码:

import grequests
from time import sleep

def print_res(res, **kwargs):
    print res
    print kwargs

headers =   {'User-Agent':'Python'}

req = grequests.get('http://stackoverflow.com', headers=headers, hooks=dict(response=print_res), verify=False)

for i in range(3):
    job = grequests.send(req, grequests.Pool(10))
    sleep(1)
我得到的答复是:

1
<Response [200]>
{'verify': False, 'cert': None, 'proxies': {'http': 'http://127.0.0.1:8888', 'ht
tps': 'https://127.0.0.1:8888'}, 'stream': False, 'timeout': None}
2
<Response [200]>
{'verify': False, 'cert': None, 'proxies': {'http': 'http://127.0.0.1:8888', 'ht
tps': 'https://127.0.0.1:8888'}, 'stream': False, 'timeout': None}
3
<Response [200]>
{'verify': False, 'cert': None, 'proxies': {'http': 'http://127.0.0.1:8888', 'ht
tps': 'https://127.0.0.1:8888'}, 'stream': False, 'timeout': None}
1
{'verify':False,'cert':无,'proxies':{'http':'http://127.0.0.1:8888","ht",
tps':'https://127.0.0.1:8888“},'流”:False,“超时”:None}
2.
{'verify':False,'cert':无,'proxies':{'http':'http://127.0.0.1:8888","ht",
tps':'https://127.0.0.1:8888“},'流”:False,“超时”:None}
3.
{'verify':False,'cert':无,'proxies':{'http':'http://127.0.0.1:8888","ht",
tps':'https://127.0.0.1:8888“},'流”:False,“超时”:None}

我曾尝试使用
req.content
job.content
访问html响应,但都不起作用。

当然,在写这个问题时,我意识到我没有尝试访问
res.content
,这正是我所需要的

经验教训:在
grequests.get()
语句中返回到响应挂钩的对象具有
content
属性,该属性包含从服务器发送的响应文本