【发布时间】:2017-08-22 05:02:15
【问题描述】:
我只是想知道是否可以使用 tweepy 制作扫描仪 - 例如,一个不断搜索某些单词的 while 循环。我是一名交易员,如果有任何突发新闻,我会发现它非常有用。
例子:
我想将我的扫描仪设置为不断返回包含“$DB”的推文。此外,我只想返回粉丝数超过 5k 的用户的推文。
任何建议或指示都会有所帮助!谢谢。
【问题讨论】:
-
你试过什么?你有什么代码要显示吗?
我只是想知道是否可以使用 tweepy 制作扫描仪 - 例如,一个不断搜索某些单词的 while 循环。我是一名交易员,如果有任何突发新闻,我会发现它非常有用。
例子:
我想将我的扫描仪设置为不断返回包含“$DB”的推文。此外,我只想返回粉丝数超过 5k 的用户的推文。
任何建议或指示都会有所帮助!谢谢。
【问题讨论】:
编辑/更新: 正如 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'])
【讨论】:
OR分隔:所以应该是q = ('$DB' OR '$MS' OR '$C')。由于速率限制,我目前被暂停,因此无法对其进行测试,但请尝试一下 :)
tweets = ('$DB OR $MS OR $C')测试过,它可以工作。
api.search 只会查找现有的推文,而不是新的推文。此外,tweepy 可以处理速率限制。