Python 使用Twitter时更改POST请求参数';s流式API
我正在使用Python并从中请求数据。我想用一组参数请求数据,一段时间后,用一组新参数更改请求 在下面这个简单的工作示例中,我向Twitter流媒体API询问关键字为“python”的tweet。一小时后,我向API询问关键字为“ruby”。然而,为此,我创建了一个新的requests对象;我没有改变原始对象Python 使用Twitter时更改POST请求参数';s流式API,python,post,twitter,httprequest,python-requests,Python,Post,Twitter,Httprequest,Python Requests,我正在使用Python并从中请求数据。我想用一组参数请求数据,一段时间后,用一组新参数更改请求 在下面这个简单的工作示例中,我向Twitter流媒体API询问关键字为“python”的tweet。一小时后,我向API询问关键字为“ruby”。然而,为此,我创建了一个新的requests对象;我没有改变原始对象 import requests import json import time USER = 'user' PW = 'pw' def make_request(keyword):
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
导入请求
导入json
导入时间
用户='USER'
PW='PW'
def发出请求(关键字):
r=请求。post('https://stream.twitter.com/1/statuses/filter.json',
数据={'track':关键字},auth=(用户,PW))
对于r.iter_线()中的线:
如果行:
打印json.loads(第行)
如果time.time()>上次请求的开始时间+3600:
打破
计数=0
关键词=['python','ruby']
当计数小于2时:
上次请求的开始时间=time.time()
发出请求(关键字[计数])
计数=计数+1
最终,我需要每小时创建一个新的查询,我担心我会创建太多的连接
我的问题是:有没有更好的方法将请求更改为twitterapi?我真的在创建多个连接吗?如果是,我如何避免这种情况?(有一个关于如何去做的建议,但这个解决方案对我来说没有多大意义。)
我将感谢任何帮助。谢谢大家! 链接时,为了在完成请求后关闭连接,请将
保持活动状态
值设置为假
,而不是默认的真
:
r = requests.post('https://stream.twitter.com/1/statuses/filter.json',
data={'track': keyword}, auth=(USER,PW),
config={'keep_alive':False})
这将确保连接在完成后关闭。链接时,为了在完成请求后关闭连接,请将
保持活动状态
值设置为假
,而不是默认的真
:
r = requests.post('https://stream.twitter.com/1/statuses/filter.json',
data={'track': keyword}, auth=(USER,PW),
config={'keep_alive':False})
这将确保连接在完成后立即关闭。这是我的荣幸。我确实必须为自己做一些学习,就像保持生命一样遥远,所以我们都受益了快乐都是我的。我确实必须为自己做一些学习,就像
keep alive
一样遥远,所以我们都受益匪浅