首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中使用Requests库创建请求数组

在Python中使用Requests库创建请求数组
EN

Stack Overflow用户
提问于 2019-06-02 08:58:28
回答 2查看 283关注 0票数 0

在从另一个API请求获得数组后,我使用请求库映射请求数组。我对请求使用了循环,但我确信有更好的方法来做这件事,因为这个请求可以有500+项,所以完成这个循环有时需要几分钟的20+时间。

我尝试使用grequest库,但不断收到递归投诉。如果可能的话,我很乐意使用异步/映射方法,但是在研究之后,显然不再支持异步库。

代码语言:javascript
复制
self.set_header("Access-Control-Allow-Origin", "*")
response = requests.get("https://hacker-news.firebaseio.com/v0/paststories.json?print=pretty")
data = response.json()
story_list = []

for story in data:
    temp_string = "https://hacker-news.firebaseio.com/v0/item/{}.json?print=pretty".format(story)
    story_data = requests.get(temp_string)
    story_list.append(story_data.json())

应该有比当前方法更好的方法来执行此循环,因为获取数据的20+分钟数是不可接受的。原始数组中的API响应可以返回一个500+数组,因此该方法应该是可伸缩的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-02 09:03:42

请求是同步的,所以您的脚本等待响应来发出新的请求。所以也许你应该看看aiohttp和aysnchronous请求。

这可能是一个例子:Is that benchmark reliable - aiohttp vs requests

票数 1
EN

Stack Overflow用户

发布于 2019-06-02 09:06:00

好吧,你只需要提高你的io-bond代码的速度,有解决方案的音调,请参考stackoverflow中的相关答案:How could I use requests in asyncio?

由于asyncio太基础了,有很多基于它构建的包,试试这个包:aiohttp-request

希望这些信息能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56411481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档