Python 使用Tweepy在一次呼叫中获取不同hashtags的tweet

Python 使用Tweepy在一次呼叫中获取不同hashtags的tweet,python,twitter,tweepy,rate-limiting,Python,Twitter,Tweepy,Rate Limiting,我想用Tweepy为不同的散列标签获取流行和最新的推文。我现在的解决方案如下所示。但是这个方法对每个hashtag单独调用,这在存在速率限制的情况下是不好的。一次电话能做到这一点吗?如果是,怎么做 for ht in hash_tags: tweets = tweepy.Cursor(api.search, ht + " -filter:retweets", result_type='mixed', since=date_since,

我想用Tweepy为不同的散列标签获取流行和最新的推文。我现在的解决方案如下所示。但是这个方法对每个hashtag单独调用,这在存在速率限制的情况下是不好的。一次电话能做到这一点吗?如果是,怎么做

for ht in hash_tags:
    tweets = tweepy.Cursor(api.search, ht + " -filter:retweets", 
        result_type='mixed', since=date_since, 
        tweet_mode='extended').items(num_of_tweets)
    add_tweets(tweets)

与每次搜索一个hashtag的
for
循环不同,您可以使用或运算符运行包含许多所需hashtag的搜索。这是一个范围更广的搜索,你会得到每个标签的混合结果包,但它减少了你的请求总数

因此,将所有hashtag添加到一个字符串中,并将其作为查询传递

#just an example, not the nicest!
    query_string = ""
    for i in hash_tags:
        if i == hash_tags[-1]:
            query_string+=str(i)
        else:
            query_string+=str(i) + " OR "
    tweets = tweepy.Cursor(api.search, q=query_string + " -filter:retweets", 
    result_type='mixed', since=date_since, 
    tweet_mode='extended').items(num_of_tweets)
add_tweets(tweets)
这意味着您的搜索将类似于
#coolstuff或#reallycooltuff或#evencoolerstuff
。这样做可能值得增加返回的项目数量,因为搜索范围会更广

请记住,您可以搜索的查询大小是有限制的,因此,如果您有很多hashtag,您可能需要将其分解为更小的查询。这也可能有助于您获得更好的结果(例如,查询字符串中更流行的hashtag占据了大量结果,因此单独搜索不太流行的hashtag;不过,如何衡量这一点取决于您自己!)


希望这能帮助您入门。

我知道这个或操作,以前也用过。但这并不能解决我的问题,因为它不会给出所有标签的结果。不幸的是,我认为你处于一个困难和困难之间,因为如果你必须看到每个标签的完整结果,你就无法通过速率限制。你必须一次搜索一个。速率限制是相当慷慨的,但我想这取决于您使用它的目的/您搜索的hashtag数量。如果你减少到每学期两学期,或者你会把利率限制提高一倍;你很有可能会同时得到这两个方面的结果,但不是每个方面的完整数字。上面的情况有点不确定,你可能最终会得到扭曲的数据,但我不相信有任何方法可以以你所寻找的方式减少搜索,至少是使用搜索API。但我真的希望你能找到办法!