我用tweepy来流一些tweet。这是我的程序:
import tweepy
import json
consumer_key = "***"
consumer_secret = "***"
access_token_key="***"
access_token_secret="***"
auth1 = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth1.set_access_token(access_token_key, access_token_secret)
api = tweepy.API(auth1)
class StreamListener(tweepy.StreamListener):
def on_status(self, status):
try:
print status.text
except Exception, e:
print 'Encountered Exception Tweet:', e
pass
return True
def on_error(self, status_code):
print 'Encountered error with status code:' + repr(status_code)
return True
def on_data(self, data):
if 'in_reply_to_status_id' in data:
status = tweepy.Status.parse(self.api, json.loads(data))
if self.on_status(status) is False:
return True
elif 'delete' in data:
delete = json.loads(data)['delete']['status']
if self.on_delete(delete['id'], delete['user_id']) is False:
return True
elif 'limit' in data:
if self.on_limit(json.loads(data)['limit']['track']) is False:
return True
return True
def on_timeout(self):
print 'Timeout...'
return True
l = StreamListener()
streamer = tweepy.Stream(auth=auth1, listener=l, timeout=36000000)
setTerms = ['enbrel']
streamer.filter(follow=None,track = setTerms)
2/3小时后,此程序停止。无信号错误、超时等。。它只是没有得到更多的tweet。我哪里做错了?在
尝试向类中添加
on_disconnect
方法。可能是Twitter正在断开你的连接(不是错误,也不是超时),而你没有处理这个问题。如果你愿意,你可以用不同的方式处理不同的Twitter错误。在查看tweepy的^{} module 了解更多信息。在
您也可以尝试在
^{pr2}$streamer.filter()
中启用暂停警告。以下是Tweepy源中的所有选项及其默认值:您可能需要在启动api时设置一个超时
相关问题 更多 >
编程相关推荐