问题标签 [python-requests]

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 回答
1468 浏览

python - Python 请求 - 从 iter_content 退出清理

我正在使用 Python Requests 模块来使用 Twitter 流 API,这是我的代码:

当我使用 KeyboardInterrupt 或通过向其传递终止信号结束此脚本时,我收到以下堆栈错误:

有什么办法可以避免这种情况或优雅地退出连接?

0 投票
2 回答
1120 浏览

python - 使用 Python 请求库发送上传文件时遇到问题

我正在尝试修改请求库文档中的示例,以包含从用户上传的文件(到 appengine 应用程序)。我尝试了以下方法:

然而这会返回

即没有收到文件。我也尝试将 the_file 发送为

但是这些也失败了。最终,我想在同一个发布请求中同时包含“值”和文件,所以类似于:

但是,这也不起作用-我想我需要先修复上面的代码。关于我做错了什么的任何想法?

0 投票
1 回答
3304 浏览

python - Linux下Python请求库超时

我正在尝试使用 requests.py 库来调用休息网络服务。我为我在 windows 下的使用编写了一个快速原型,一切正常,但是当我尝试在 linux 下运行相同的原型时,我收到“requests.exceptions.Timeout: Request timed out”错误。有谁知道为什么会发生这种情况?如果我尝试使用该库访问非 https url,它在 windows 和 linux 下都可以正常工作。

我确实注意到,如果我从 get 调用中删除 verify=False 参数,我会得到一个不同的异常,即“requests.exceptions.SSLError: Can't connect to HTTPS URL because the SSL module is not available”。这似乎是一个可能的根本原因,虽然我不知道他们为什么会更改错误代码,但我找不到对 ssl 模块的任何引用,并且我验证了 certifi 已安装。有趣的是,如果我在 windows 中去掉 verify 参数,我会得到一个不同的异常,“requests.exceptions.SSLError: [Errno 1] _ssl.c:503: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed”

编辑:

提到的所有案例/场景的追溯

完整代码如上图:

如上所示的代码减去“verify=False”参数:

如上所示的代码减去“verify=False”参数并在windows下运行:

0 投票
2 回答
215 浏览

python - 数组更改后立即跳出循环

这有点复杂……

基本上,我有这个功能:

并且,有一个线程不断地在它旁边运行,它会在任意时间改变connections[0].

如果发生这种情况,如果connections[0]被线程从外部更改,则循环将继续使用 old connections[0],我需要不要发生这种情况,我需要它立即使用 new connections[0]

对于某些背景,正在使用, 因此for line in self.connections[0].iter_lines():从 Twitter Streaming API 读取数据。python-requests.iter_lines()

有任何想法吗?提前致谢。

0 投票
1 回答
4094 浏览

python - 使用 python 请求和 json 发布文件

作为 API 文档的一部分,我得到了以下 curl 命令,我正在尝试使用 requests 库来实现它。

我的 python 代码看起来像这样:

我听说你可以使用 open('file').read() 来发布文件,但是 json 编码器不太喜欢这样,我不确定是否有解决方法。

0 投票
1 回答
504 浏览

gevent - 为什么这个 http 流不能按预期工作?

我有一个服务器正在尝试将一些内容流式传输到客户端(这是 Kenneth Reitz 优秀的请求库)-(以下代码的道具toastdriven.com)。请注意,在浏览器中,它按预期工作。

还有一个客户:

我不明白为什么 json 行没有出现在终端(OSX)中。当我 ctrl-c 时,响应被转储到屏幕上。

如果我做:

我得到了 json,每行上的一个字符,按预期流式传输。

有任何想法吗?

0 投票
1 回答
1253 浏览

python - 使用请求和多处理时的奇怪问题

请检查这个python代码:

当我按 Ctrl-C (运行后等待 2 秒 - 让进程运行)时,它不会停止。当我将导入顺序更改为:

它在 Ctrl-C 之后停止。为什么它在第一个示例中没有停止/杀死?

这是一个错误还是一个功能?

笔记:

  • 是的,我知道,我没有在这段代码中使用异步,这只是精简代码。在实际代码中我使用它。我这样做是为了简化我的问题。
  • 按下 Ctrl-C 后,有一个新的(子)进程正在运行。为什么?
  • multiprocessing.__version__ == 0.70a1, requests.__version__ == 0.11.2,gevent.__version__ == 0.13.7
0 投票
1 回答
3921 浏览

python - 使用 Python 请求选择表单

我想使用一个能够填写表格和处理重定向的python库:

  1. “主页”有一个表格{'username':'user', 'password':'pass'}
  2. “重定向”页面将我带到一个新页面
  3. “新”页面有一个指向最终页面的链接
  4. “最终”页面有一个表格{'Field 1':'Data 1', 'Field 2':'Data 2'}

我想进入“最终”页面并填写表格。我已经浏览了 SO 中关于的每一篇文章,阅读了 API 文档和整个用户指南。

我已经能够使用 mechanize 填写“主页”页面表格:

此外——在网页上禁用重定向后——我已经能够使用机械化来填写“新”页面表单:

如果我不禁用重定向并且页面重定向会发生什么我没有进入“新”页面并且当我尝试填写表单时出现以下错误:

我听说 Python Requests 非常简单,我想使用这个库,假设我可以做一些事情:

0 投票
2 回答
4287 浏览

python - 如何将 cURL 转换为 Python Web 请求?

很抱歉问这样的入门级问题。我需要将以下内容翻译cURL成 python 语言。我尝试使用requests函数,但失败了。那么有人可以给我一些提示吗?选择请求是否正确?我应该考虑 urllib 吗?谢谢!

卷曲代码:

我的错误尝试:

我收到以下错误:

我需要先对我的密钥和密钥进行编码吗?

0 投票
1 回答
861 浏览

python - How to translate cURL to Python requests language?

I have some difficulty in translating cURL options into Python requests for uploading a file to a cloud server Picloud. Based on their description, the first step is to POST a request to make a new file to PiCloud to create a ticket for this upload. The second step is to send instructions extracted from this ticket to upload the file.

I am OK with the first step. But have questions about the second one.

1st step, create a upload ticket.

cURL statement:

My requests code:

The ticket looks like:

2nd step, upload the file.

Basically, I do not quite understand in translating cURL -L and -F options. Based on instructions from cURL, -L means redirect, and -F means fill in as form.

cURL statement:

My bad trial:

The error message is

Thanks for your help!