Python tweepy 跟踪
我正在尝试使用Tweepy获取所有包含某个关键词的推文,但在某些关键词上没有返回任何结果。例如,如果我用“Obama”作为关键词,我能得到很多推文;但如果我用“Arduino”,就什么都没有。以下是我的代码。
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
consumer_key=""
consumer_secret=""
access_token=""
access_token_secret=""
class Listener(StreamListener):
def on_data(self, data):
print data
return True
def on_error(self, status):
print status
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, Listener())
stream.filter(track=['arduino'])
我哪里做错了?另外,我能否过滤掉转发的推文?
1 个回答
1
Stream()
是用来实时收集推文的。你没有收集到关于 arduino
的推文,主要是因为提到它的推文数量比像奥巴马这样的大人物少得多(比如我试过的时候,2秒内就收到了5条关于奥巴马的推文,但我花了10分钟才收集到一条提到Arduino的推文)。另外,记得过滤器是区分大小写的哦。要获取非实时的推文,你需要使用 .search() 方法,这个方法是 tweepy.API
对象的一部分。
像这样:
twAPI = tweepy.API(auth)
list_of_tweets = twAPI.search("Arduino")
希望这对你有帮助!
编辑: 我不知道 tweepy 是否与 REST 1.1 兼容(我用 1.0 版本时有一些警告)。如果 tweepy 不好用,可以看看 Python Twitter Tools。