2

我正在尝试读取 Twitter 流 API 的输出,但遇到了一些麻烦。到目前为止,这是我的代码:

from urllib2 import *
import StringIO

password_mgr = HTTPPasswordMgrWithDefaultRealm()
url = "https://stream.twitter.com/1/statuses/sample.json"
password_mgr.add_password(None, url, 'myusername', 'mypassword')
h = HTTPBasicAuthHandler(password_mgr)
opener = build_opener(h)
page = opener.open(url)
io = StringIO(page.read())
print io.getvalue()
io.close()

我最初只是使用,page.read()但导致我的控制台一直打印出流并且不会返回到代码。我现在正在尝试使用 StringIO 像流一样处理它并逐步打印出来,但是当我这样做时,我什么也得不到,而且这个过程就成立了。有一个更好的方法吗?

4

2 回答 2

6

我听到了有关 requests 模块的好消息:

https://2.python-requests.org/en/master/user/advanced/#id9

于 2012-08-09T20:41:16.287 回答
3

请阅读流请求¶

https://requests.kennethreitz.org/en/master/user/advanced/#streaming-requests

import json
import requests

r = requests.get('https://httpbin.org/stream/20', stream=True)

if r.encoding is None:
    r.encoding = 'utf-8'

for line in r.iter_lines(decode_unicode=True):
    if line:
        print(json.loads(line))
于 2019-11-18T08:57:33.903 回答