0

我正在学习 Python,我想开始使用 Twitter 的流 API。我知道如何构建一个非常基本的应用程序来读取页面的内容,urllib2并且过去已经成功地做到了这一点。但是,https://此特定 Twitter 流 API 所需的安全连接似乎不适用于 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。

以下是完整的追溯。

回溯(最后一次调用):文件“”,第 1 行,在文件“/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:未经授权

提前谢谢了。

4

2 回答 2

2

正如其他人提到的,您需要授权。这是如何做到的:

在 python 中查看带有 urllib2 的 Twitter API

import urllib2
import base64

request = urllib2.Request( 'https://stream.twitter.com...' )
request.add_header( 'Authorization', 'Basic ' + base64.b64encode( username + ':' + password ) )
response = urllib2.urlopen( request )
于 2012-11-13T05:06:35.633 回答
1

不是 SSL 连接未授权,而是您在进行此调用之前尚未明确授权系统。在发出请求之前,您需要对服务器执行某种授权。

于 2012-11-13T05:00:53.900 回答