Python tweepy 跟踪

2 投票
1 回答
1987 浏览
提问于 2025-04-17 23:24

我正在尝试使用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

撰写回答