在python中读取HTTP流

问题描述 投票:0回答: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像流一样处理它并逐步打印出来,但是当我这样做时,我什么也没得到,过程就成立了。有更好的方法吗?

python twitter
2个回答
2
投票

0
投票

请阅读流媒体请求¶

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))
© www.soinside.com 2019 - 2024. All rights reserved.