【问题标题】:How to use AND and OR operands at the same time in Twitter API?如何在 Twitter API 中同时使用 AND 和 OR 操作数?
【发布时间】:2015-09-18 20:22:09
【问题描述】:

我正在尝试使用 tweepy 过滤器选项检索包含诸如挂钟、墙纸、墙贴之类的词的推文。我知道“空格”表示“与”,“,”表示“或”。

我推荐的官方文档:https://dev.twitter.com/streaming/overview/request-parameters#track

在给出的文档示例中,'twitter api,twitter streaming' 应该得到以下推文。

1. The Twitter API is awesome
2. The twitter streaming service is fast
3. Twitter has a streaming API

有没有办法把这两个操作数结合起来。

例如:"twitter api,streaming" 应该检索所有上述推文。

我试过这种方法

class StdOutListener(StreamListener):

    def on_data(self, data):
        print data
        return True

    def on_error(self, status):
        print status


l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, l)

stream.filter(track=['stream.filter(track=['twitter api,streaming'])'])

它只获取包含流媒体或 twitter api 的推文。但不是我想要的方式。

【问题讨论】:

  • @Gaurav Shankar。我已经给出了逻辑适用的代码的 sn-p。无论如何,我已经分享了代码。

标签: python tweepy


【解决方案1】:

您只需要使用不带逗号的twitter OR api OR streaming。此方法将为您提供您列出的所有 3 个。

现在,如果您想要类似的 twitter api 或 twitter 流式传输,请执行以下操作:"twitter api" OR "twitter streaming"。这将为您提供列表中的 1 和 2,而不是 3。

欲了解更多信息,请查看Query Operators

为了明确 andor,就 twitter 而言,and 不必明确指定,原因如下:

watching now -- 包含“watching”“now”。这是默认运算符。

请注意,这与使用 "watching now" 不同,后者意味着“正在观看”必须紧跟“现在”一词。

但是,or 必须指定:

love OR hat -- 包含“love”“hate”(或两者)。

【讨论】:

  • 我认为第二个将出现在输出之下,因为它同时包含 twitter 和流媒体这两个词。如果我错了纠正我。我的问题是如何将 AND 和 OR 操作数组合在一起。
  • 我更新了我的评论以更清楚,如果是,请告诉我。
  • 在您的回答中,“正在观看”和“现在”不必在推文中放在一起考虑。 “正在观看”表示这两个词必须出现在推文中,而不是彼此相邻。
  • 对于“正在观看”和“现在”这两个词必须出现在推文中。 “正在观看”必须彼此相邻。来自 twitter 文档:“happy hour” -- containing the exact phrase “happy hour”. 因此这个词是准确的短语。
  • dev.twitter.com/streaming/overview/request-parameters#track查看twitter api,twitter流示例。
猜你喜欢
  • 2013-02-19
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 2018-09-06
  • 1970-01-01
  • 2018-12-08
  • 1970-01-01
相关资源
最近更新 更多