我正在使用Twython来获取推文流。我使用了this教程,期望我没有使用GPIO。
我的代码如下:
import time
from twython import TwythonStreamer
TERMS='#stackoverflow'
APP_KEY='MY APP KEY'
APP_SECRET='MY APP SECRET'
OAUTH_TOKEN='MY OATH TOKEN'
OAUTH_TOKEN_SECRET='MY OATH TOKEN SECRET'
class BlinkyStreamer(TwythonStreamer):
def on_success(self, data):
if 'text' in data:
print data['text'].encode('utf-8')
try:
stream = BlinkyStreamer(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
stream.statuses.filter(track=TERMS)
except KeyboardInterrupt
输出包含#stackoverflow
的所有推文的流。但我想输出推文,如果它来自某个用户,例如@StackStatus。
我在Raspberry Pi上运行它。
我该怎么做?任何帮助表示赞赏!
编辑:如果在某个用户发布新推文时有另一种,其他或更简单的方法来执行某些脚本,请告诉我,这也可以解决我的问题! < / p>
答案 0 :(得分:1)
&#39;关注&#39;参数不能如上所述由teknoboy工作。正确使用是使用用户的ID,而不是他们的屏幕名称。您可以使用http://gettwitterid.com/获取用户ID。
可用的第三个参数是位置 - 您可以根据需要使用其中的1,2或3。它们与&#34; OR&#34;,而不是&#39; AND&#39;。
相关联示例用法:
SearchTerm =&#39; abracadabra&#39; #如果包含空格,则它们是“或”,即查找包含任何一个单词的推文,而不是整个字符串。
Tweeter =&#39; 25073877&#39; #这是唐纳德特朗普,发现他的推文或提到他 地点=&#39;&#34; 47.405,-177.296,1mi&#34;&#39; #从Lat,Long左1英里内发送stream.statuses.filter(track = SearchTerm,follow = Tweeter,location = Place)
答案 1 :(得分:0)
您应该为过滤器提供follow
参数来流式传输特定用户的推文。
如果您只想关注一个用户,您可以定义
FOLLOW='StackStatus'
并将适当的行更改为
stream.statuses.filter(track=TERMS, follow=FOLLOW)
如果您希望查看所有用户的推文,无论关键字如何,您都可以省略track
参数:
stream.statuses.filter(follow=FOLLOW)