【问题标题】:Twitter Scanner w tweepy - PythonTwitter 扫描仪 w tweepy - Python
【发布时间】:2017-08-22 05:02:15
【问题描述】:

我只是想知道是否可以使用 tweepy 制作扫描仪 - 例如,一个不断搜索某些单词的 while 循环。我是一名交易员,如果有任何突发新闻,我会发现它非常有用。

例子:

我想将我的扫描仪设置为不断返回包含“$DB”的推文。此外,我只想返回粉丝数超过 5k 的用户的推文。

任何建议或指示都会有所帮助!谢谢。

【问题讨论】:

  • 你试过什么?你有什么代码要显示吗?

标签: python twitter tweepy


【解决方案1】:

编辑/更新: 正如 asongtoruin 和 qorka 所讨论的,该问题要求新推文,而不是现有推文。以前的编辑使用了api.search 方法,该方法仅查找现有消息。 StreamListener 读取新消息。

import tweepy
from tweepy import OAuthHandler

access_token='your_api_token'
access_secret='your_api_access_secret'
consumer_key = 'your_api_key'
consumer_secret = 'your_consumer_key'

auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)

api = tweepy.API(auth)

class MyListener(StreamListener):
    def on_status(self, status):
        try:
            if status.user.followers_count > 5000:
                print '%s (%s at %s, followers: %d)' % (status.text, status.user.screen_name, status.created_at, status.user.followers_count)
                return True
        except BaseException as e:
            print("Error on_status: %s" % str(e))
        return True

    def on_error(self, status):
        print(status)
        return True

twitter_stream = Stream(auth, MyListener())
twitter_stream.filter(track=['$DB','$MS','$C'])

【讨论】:

  • 谢谢!有没有办法做多个关键字?如果我想做 '$DB', '$MS', '$C' - 当我尝试将它们添加到 'tweets' 时,我似乎得到了 StopIteration
  • 根据this answerSearch API docs,所有术语都需要在一个一个字符串参数中,每个术语用大写的OR分隔:所以应该是q = ('$DB' OR '$MS' OR '$C')。由于速率限制,我目前被暂停,因此无法对其进行测试,但请尝试一下 :)
  • @qorka,我最后的评论不正确,多个关键字应该一个字符串中,我用tweets = ('$DB OR $MS OR $C')测试过,它可以工作。
  • 谢谢你 - 这行得通!但是,我注意到代码并没有主动扫描新推文,而是打印旧推文然后转到 StopIteration。你也是这样吗?
  • api.search 只会查找现有的推文,而不是新的推文。此外,tweepy 可以处理速率限制。
猜你喜欢
  • 2015-06-10
  • 1970-01-01
  • 1970-01-01
  • 2019-02-09
  • 2012-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
相关资源
最近更新 更多