我正在使用 Python 和Requests从Twitter 的流 API请求数据。我想用一组参数请求数据,一段时间后,用一组新的参数改变请求。
在以下简单、有效的示例中,我向 Twitter 流式 API 询问带有关键字“python”的推文。一个小时后,我向 API 询问关键字“ruby”。但是,为此,我正在创建一个新的请求对象;我没有改变原始对象。
import requests
import json
import time
USER = 'user'
PW = 'pw'
def make_request(keyword):
r = requests.post('https://stream.twitter.com/1/statuses/filter.json',
data={'track': keyword}, auth=(USER,PW))
for line in r.iter_lines():
if line:
print json.loads(line)
if time.time() > start_of_last_request + 3600:
break
count = 0
keywords = ['python', 'ruby']
while count < 2:
start_of_last_request = time.time()
make_request(keywords[count])
count = count + 1
最终,我需要每小时创建一个新查询,我担心会创建太多连接。
我的问题是:有没有更好的方法来更改对 Twitter API 的请求?我实际上是在创建多个连接吗?如果是这样,我该如何避免这种情况?(有一个关于如何关闭以前的连接的建议,但这个解决方案对我来说不太有意义。)
我将不胜感激任何帮助。谢谢!