gpt4 book ai didi

python - 异步请求不能使用 GRequests

转载 作者:可可西里 更新时间:2023-11-01 17:26:28 27 4
gpt4 key购买 nike

我正在编写一个程序。它从文件中读取 url,然后发出请求。但是处理程序不会被调用。

这是我的代码:

import grequests


def main():
async_list =[]

for site in extractsites():
action_item = grequests.get('http://' + site, hooks={'response': handleresponse})
async_list.append(action_item)

grequests.map(async_list)


def extractsites():
return ['google.com']


def handleresponse(response):
print(response)


if __name__ == '__main__':
main()

谁能看出它为什么不起作用?

最佳答案

处理程序必须有不同的签名,可以传递其他参数:

def handler(response, **kwargs):
print(response, kwargs)

完整示例:

import grequests

def main():
async_list =[]

for site in extractsites():
action_item = grequests.get('http://' + site, hooks={'response': handleresponse})
async_list.append(action_item)

grequests.map(async_list)

def extractsites():
return ['google.com']

def handleresponse(response, **kwargs):
print(response, kwargs)

if __name__ == '__main__':
main()

或更短:

import grequests
urls = ['http://google.com']
handler = lambda response, **kwargs: print(response, kwargs)
grequests.map(grequests.get(url, hooks={'response': handler}) for url in urls)

关于python - 异步请求不能使用 GRequests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45896226/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com