问题标签 [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.

0 投票
1 回答
138 浏览

python - github3.py:可以与 grequests 一起使用吗?

我想知道这是否曾经出现过?

我有一个从我们的 GitHub Enterprise 实例下载大量信息的应用程序(目前不使用 github3.py,但我正在考虑将其转换为使用 github3.py)。基本上,它会抓取 189 个 repos,然后对于每个 repo,它会拉取分支、标签和提交。这显然很慢,因为它必须串行执行很多 HTTP 请求。

我想知道是否可以让 github3.py 返回grequest对象,以便我可以让 grequests 并行执行请求?或者,另一种选择是通过在 github3.py 中设置“并发级别”并让它处理并行请求来包装和隐藏 grequest。或者也许是一个上下文管理器:

我认识到,想出一个可以很好地与并行化配合使用的 API 可能是相当具有挑战性的,因为它是一个完全不同的范式。这就是为什么我不想用这个来混淆问题跟踪器。

0 投票
1 回答
716 浏览

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:

我一定是在某个时候破坏了某些东西,因为现在我安装的所有模块都没有通过。我过去安装的模块仍然可以工作,但新的模块出现与上述相同的错误。

0 投票
2 回答
3102 浏览

python - gevent / requests 在发出大量头部请求时挂起

我需要发出 100k 头请求,并且我在请求之上使用 gevent。我的代码运行了一段时间,但最终挂起。我不确定它为什么挂起,或者它是否挂在请求或 gevent 中。我在请求和 gevent 中都使用了 timeout 参数。

请看看我下面的代码片段,让我知道我应该改变什么。

我已经尝试过 grequests,但它已被放弃,并且我已经完成了 github 拉取请求,但它们也都有问题。

0 投票
2 回答
7404 浏览

python - Celery + Eventlet + 非阻塞请求

requests在 celeryworkers中使用 Python 进行大量(~10/秒)API 调用(包括 GET、POST、PUT、DELETE)。每个请求大约需要 5-10 秒才能完成。

我尝试在池中运行 celery workers,eventlet并发 1000。

由于requests正在阻塞进程,因此每个并发连接都在等待一个请求。

如何使requests异步?

0 投票
1 回答
970 浏览

python - 对单个请求使用 grequest

我最近在我的工作场所遇到了一些使用grequests 库发出 HTTP 请求的内部代码。

但是,当我查看代码时,我注意到程序一次只发送一个请求。例如,考虑以下函数:

在调用此函数的所有实例中,只有一个 uri 被传递给该函数。换句话说,对这个run()函数的所有调用看起来像:

因为我是使用 grequests 的新手,所以这真的比传统的requests库有什么优势吗?似乎在这里使用 grequest 会使代码过于复杂。

在这种情况下使用 grequest 会比使用普通的旧请求更好吗?

0 投票
2 回答
4966 浏览

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 参数设置为无编码和内容类型:

现在我得到了正确的输出:

注意:输出编辑了一点以隐藏一些数据。

0 投票
2 回答
3864 浏览

python - 如何处理 GRequest 中的错误?

我有这个代码

如何处理错误而不收到通常的 Python 错误消息?
例如,对于不存在的域,它会打印出“未找到”。

0 投票
1 回答
774 浏览

python - 具有指数退避的请求

以下是我用于同时请求的模式:

但是,ConnectionError: HTTPConnectionPool(host='apicache.vudu.com', port=80): Max retries exceeded with url:大约每 5,000 个请求都会出现错误并崩溃。执行上述操作时更可靠的模式是什么——例如,如果单个请求不起作用,则重试 url 最多五次?

0 投票
1 回答
666 浏览

python - 如何使用 python grequests 进行异步 http 请求

我无法从此代码中获取异步属性。调用 url 的休眠时间为 10 秒。

grequests.send 命令立即完成,但我没有在服务器上收到请求。

如果我使用 r.send() 或 grequests.map(),请求会被阻止 10 秒,这是我没想到的。

请帮忙。谢谢。

0 投票
0 回答
1921 浏览

python - 使用 grequests 时出现“协议不支持的地址族”错误

当我调用以下函数来处理一长串 URL(访问同一站点(即http://foo.bar.com/url1http://foo.bar.com/url2)时:

我收到一堆这样的错误:

消息的数量远小于 URL 的数量。

什么可能导致这些错误?我在 RedHat 6.6 上运行它

更新:我从我一直在使用的完整数据集中收集了所有给我错误的 URL。它们看起来都很好(格式正确等),当我将其中一个粘贴到浏览器中时,我得到了有意义的结果并且没有错误消息。然后,我只用一部分数据重新运行了测试。同样,出现了一些错误并收集了子集的错误 URL 列表。事实证明,子集中的所有错误 URL 都不在完整集的错误 URL 列表中。这表明该错误并不是真正的 URL 特定的,而是某种类型的打嗝,无论是在我这边还是在另一边。这会敲响警钟吗?