python – 如何使用Twython从twitter搜索或流式api获取超过100条
发布时间:2020-12-20 11:35:25 所属栏目:Python 来源:网络整理
导读:我怎样才能使用Twython来检索所有提到例如“#Accounting”的推文? 我使用了Twitter搜索API,但我只能获得100条推文. 然后我尝试使用Twitter流式过滤器API,但无法通过地理位置缩小,它似乎需要永远.我读到我们应该将所有推文放入数据库然后在那里进行聚合,但我
我怎样才能使用Twython来检索所有提到例如“#Accounting”的推文?
我使用了Twitter搜索API,但我只能获得100条推文. 然后我尝试使用Twitter流式过滤器API,但无法通过地理位置缩小,它似乎需要永远.我读到我们应该将所有推文放入数据库然后在那里进行聚合,但我想知道是否有其他方法可以快速做一些事情. 这是我的代码: from twython import Twython TWITTER_APP_KEY = 'XXXX' TWITTER_APP_KEY_SECRET = 'XXXX' TWITTER_ACCESS_TOKEN = 'XXXX' TWITTER_ACCESS_TOKEN_SECRET = 'XXXX' t = Twython(app_key=TWITTER_APP_KEY,app_secret=TWITTER_APP_KEY_SECRET,oauth_token=TWITTER_ACCESS_TOKEN,oauth_token_secret=TWITTER_ACCESS_TOKEN_SECRET) search = t.search(q='#Accounting',geocode='-74,40,-73,41',since_id='1',max_id='504082008759488512' ) tweets = search['statuses'] count=0 for tweet in tweets: count+=1 print tweet['id_str'],'n',tweet['text'],'nnn' print count 这是我的Streaming API代码: from twython import TwythonStreamer APP_KEY = 'XXXX' APP_SECRET = 'XXXX' OAUTH_TOKEN = 'XXXX' OAUTH_TOKEN_SECRET = 'XXXX' class MyStreamer(TwythonStreamer): tweets=[] def on_success(self,data): if 'text' in data: tweet= data['text'].encode('utf-8') if 'Accounting' in tweet: tweets.append(tweet) print tweet def on_error(self,status_code,data): print status_code self.disconnect() stream = MyStreamer(APP_KEY,APP_SECRET,OAUTH_TOKEN,OAUTH_TOKEN_SECRET) stream.statuses.filter(location=['-74,41']) 谢谢 解决方法
您一次只能查询100个,但您可以说明查询应从哪个ID开始(或者大于或小于).
所以你要做的就是运行你的前100个,然后寻找最低的ID并运行另一个查询,这次将该ID(少于1)设置为你的最大ID.这将返回下一个100,您将其追加到之前的结果中. 然后,您可以根据Twitter速率限制多次运行此循环. 如果要获取最新的推文,则应将t.setMaxId()或t.setSinceId()设置为分别低于或高于当前最低/最高ID. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |