0

我是 Python 新手,我一直在尝试连接 Twitter 的公共数据流作为练习项目。我已经做到了这一点:

>>> import urllib2
>>> url = urllib2.urlopen("https://stream.twitter.com/1/statuses/sample.json")
Trackback...(omitted)
urllib2.HTTPError: HTTP Error 401: Unauthorized

预计会出现 401 错误,但是我不知道如何继续前进。我目前正在阅读 Twitter Authentication API Docs,他们推荐第三方库,我可以这样做,但我想避免,因为我真的想了解发生了什么。我认为您必须将 OAuth 数据放在标题中?我应该使用 add_header() 吗?

4

1 回答 1

2

您发布的链接需要 HTTP 身份验证:

>>> from urllib2 import *
>>> password_mgr = HTTPPasswordMgrWithDefaultRealm()
>>> url = "https://stream.twitter.com/1/statuses/sample.json"
>>> password_mgr.add_password(None, url, 'USERNAME', 'PASSWORD')
             #worked with my real twitter credentials ^ 
>>> h = HTTPBasicAuthHandler(password_mgr)
>>> opener = build_opener(h)
>>> page = opener.open(url)
>>> page.getcode()
200

看到这个

于 2012-08-09T18:44:51.940 回答