问题标签 [grequests]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - github3.py:可以与 grequests 一起使用吗?
我想知道这是否曾经出现过?
我有一个从我们的 GitHub Enterprise 实例下载大量信息的应用程序(目前不使用 github3.py,但我正在考虑将其转换为使用 github3.py)。基本上,它会抓取 189 个 repos,然后对于每个 repo,它会拉取分支、标签和提交。这显然很慢,因为它必须串行执行很多 HTTP 请求。
我想知道是否可以让 github3.py 返回grequest对象,以便我可以让 grequests 并行执行请求?或者,另一种选择是通过在 github3.py 中设置“并发级别”并让它处理并行请求来包装和隐藏 grequest。或者也许是一个上下文管理器:
我认识到,想出一个可以很好地与并行化配合使用的 API 可能是相当具有挑战性的,因为它是一个完全不同的范式。这就是为什么我不想用这个来混淆问题跟踪器。
python - 奇怪的点子错误。无法安装某些模块,但我可以安装其他模块
尽管我尽了最大的努力,但我似乎无法让 gevent 或 grequests 工作。他们都依赖greenlet,我也无法工作。
我已经通过自制软件完全安装并重新安装了 python。我没有尝试过使用 python 的安装程序,但我不明白为什么这很重要。我已将 xcode 升级到最新版本并安装了几乎所有插件。我经常通过 pip 成功安装 python 模块。上个月我一直在尝试安装 grequests。
电脑:
- Mac OSX 优胜美地版本 10.10.1
- MacBook Pro(视网膜显示屏,15 英寸,2013 年末)
- 2.3 GHz 英特尔酷睿 i7
- 16 GB 1600 MHz DDR3
- 英特尔虹膜专业版 1536 MB
`
'
编辑:
编辑2:
我一定是在某个时候破坏了某些东西,因为现在我安装的所有模块都没有通过。我过去安装的模块仍然可以工作,但新的模块出现与上述相同的错误。
python - gevent / requests 在发出大量头部请求时挂起
我需要发出 100k 头请求,并且我在请求之上使用 gevent。我的代码运行了一段时间,但最终挂起。我不确定它为什么挂起,或者它是否挂在请求或 gevent 中。我在请求和 gevent 中都使用了 timeout 参数。
请看看我下面的代码片段,让我知道我应该改变什么。
我已经尝试过 grequests,但它已被放弃,并且我已经完成了 github 拉取请求,但它们也都有问题。
python - Celery + Eventlet + 非阻塞请求
我requests
在 celeryworkers
中使用 Python 进行大量(~10/秒)API 调用(包括 GET、POST、PUT、DELETE)。每个请求大约需要 5-10 秒才能完成。
我尝试在池中运行 celery workers,eventlet
并发 1000。
由于requests
正在阻塞进程,因此每个并发连接都在等待一个请求。
如何使requests
异步?
python - 对单个请求使用 grequest
我最近在我的工作场所遇到了一些使用grequests 库发出 HTTP 请求的内部代码。
但是,当我查看代码时,我注意到程序一次只发送一个请求。例如,考虑以下函数:
在调用此函数的所有实例中,只有一个 uri 被传递给该函数。换句话说,对这个run()
函数的所有调用看起来像:
因为我是使用 grequests 的新手,所以这真的比传统的requests库有什么优势吗?似乎在这里使用 grequest 会使代码过于复杂。
在这种情况下使用 grequest 会比使用普通的旧请求更好吗?
python - 用 grequests 发布 json 数据?
我需要使用 grequests 发出异步 POST 请求。
我的帖子正文(在 json 中)是这样的:
我需要将[0]['params']['id']
键的值更改为我将制作的许多 POST 的不同 URL。
所以我在做:
myrequests = (grequests.post(POST_URL, data=fgp(a_url) for a_url in all_urls)
我的生成器理解中的fgp()
方法是一种[0]['params']['id']
将a_url
传递给它的方法,在我发送的 POST 正文中。
当我将请求映射到响应时:
myresponses = grequests.map(myrequests)
这就是我得到的,与请求一样多(显然)。
编辑:问题已解决:-
requests
我必须玩弄,并像在模块中一样放入标题。
我将 headers kwarg 参数设置为无编码和内容类型:
现在我得到了正确的输出:
注意:输出编辑了一点以隐藏一些数据。
python - 如何处理 GRequest 中的错误?
我有这个代码
如何处理错误而不收到通常的 Python 错误消息?
例如,对于不存在的域,它会打印出“未找到”。
python - 具有指数退避的请求
以下是我用于同时请求的模式:
但是,ConnectionError: HTTPConnectionPool(host='apicache.vudu.com', port=80): Max retries exceeded with url:
大约每 5,000 个请求都会出现错误并崩溃。执行上述操作时更可靠的模式是什么——例如,如果单个请求不起作用,则重试 url 最多五次?
python - 如何使用 python grequests 进行异步 http 请求
我无法从此代码中获取异步属性。调用 url 的休眠时间为 10 秒。
grequests.send 命令立即完成,但我没有在服务器上收到请求。
如果我使用 r.send() 或 grequests.map(),请求会被阻止 10 秒,这是我没想到的。
请帮忙。谢谢。
python - 使用 grequests 时出现“协议不支持的地址族”错误
当我调用以下函数来处理一长串 URL(访问同一站点(即http://foo.bar.com/url1
等http://foo.bar.com/url2
)时:
我收到一堆这样的错误:
消息的数量远小于 URL 的数量。
什么可能导致这些错误?我在 RedHat 6.6 上运行它
更新:我从我一直在使用的完整数据集中收集了所有给我错误的 URL。它们看起来都很好(格式正确等),当我将其中一个粘贴到浏览器中时,我得到了有意义的结果并且没有错误消息。然后,我只用一部分数据重新运行了测试。同样,出现了一些错误并收集了子集的错误 URL 列表。事实证明,子集中的所有错误 URL 都不在完整集的错误 URL 列表中。这表明该错误并不是真正的 URL 特定的,而是某种类型的打嗝,无论是在我这边还是在另一边。这会敲响警钟吗?