【发布时间】:2012-11-01 14:07:56
【问题描述】:
我正在学习 Python,我想开始使用 Twitter 的流式处理 API。我知道如何构建一个非常基本的应用程序,该应用程序使用urllib2 读取页面内容,并且过去曾成功完成此操作。但是,此特定 Twitter 流 API 所需的安全连接 https:// 似乎不适用于 urllib2。
我尝试从以下链接获取 JSON:https://stream.twitter.com/1.1/statuses/filter.json?locations=-122.75,36.8,-121.75,37.8
通过编写以下内容:
import urllib2
url = "https://stream.twitter.com/1.1/statuses/filter.json?locations=-122.75,36.8,-121.75,37.8"
print urllib2.urlopen(url).read()
但是,回溯显示我没有被授权;我推测这是因为 HTTPS SSL 连接,研究支持了这一点。所以我想我的问题是从需要这种 SSL 连接的链接获取 JSON 的最佳方法是什么?我也尝试了 curl,但再次收到错误 401。
以下是完整的回溯。
Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件 "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", 第 126 行,在 urlopen 文件中 "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", 第 400 行,在打开的文件中 "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", 第 513 行,在 http_response 文件中 "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", 第 438 行,在错误文件中 "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", 第 372 行,在 _call_chain 文件中 "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", 第 521 行,在 http_error_default urllib2.HTTPError:HTTP 错误 401: 未经授权
提前非常感谢。
【问题讨论】:
-
API 可能需要 OAuth 令牌或其他 API 密钥。
-
啊。它确实说它需要 Twitter 用户登录。我想这就是为什么当我在浏览器中输入 url 时流工作的原因(因为我登录到 Twitter)。它不需要 OAuth,所以我可以将我的登录凭据添加到我的 Python 文件的标题中吗?
标签: python json ssl https urllib2