【问题标题】:Twython getting tweets from userTwython 从用户那里获取推文
【发布时间】:2016-12-29 16:14:40
【问题描述】:

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

我在树莓派上运行它。

我该怎么做?任何帮助表示赞赏!

编辑:当某个用户发布新推文时,如果有另一种、其他或更简单的方法来执行某些脚本,请告诉我,这也可以解决我的问题!

【问题讨论】:

    标签: python twitter twython


    【解决方案1】:

    “follow”参数无法按照上述 teknoboy 所述工作。正确的用法是使用用户的 ID,而不是他们的屏幕名称。您可以使用 http://gettwitterid.com/ 获取用户 ID。

    可用的第三个参数是 Location - 您可以根据需要使用 1、2 或 3 个 then。它们与“OR”而非“AND”相关联。

    示例用法:

    SearchTerm = 'abracadabra' # 如果包含空格,则为“或”,即查找包含任何一个单词的推文,而不是整个字符串。
    Tweeter = '25073877' # 这是唐纳德·特朗普,找到他的推文或提及他
    Place = '"47.405,-177.296,1mi"' # 从经纬度 1 英里范围内发送

    stream.statuses.filter(track=SearchTerm, follow=Tweeter, location=Place)

    【讨论】:

      【解决方案2】:

      您应该为过滤器提供follow 参数以流式传输特定用户的推文。 如果您只想关注一个用户,您可以定义 FOLLOW='StackStatus' 并将相应的行更改为
      stream.statuses.filter(track=TERMS, follow=FOLLOW)
      如果你想查看所有用户的推文,不管关键字,你可以省略track参数:
      stream.statuses.filter(follow=FOLLOW)

      【讨论】:

        猜你喜欢
        • 2017-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多