使用 Tweepy 在一次通话中获取不同主题标签的推文

Getting tweets for different hashtags in one call using Tweepy

我想使用 Tweepy 获取不同哈希标签的热门推文和最新推文。我现在的解决方案如下所示。但是这种方法对每个主题标签进行单独调用,这在存在速率限制的情况下并不好。是否有可能在一个电话中做到这一点?如果可以,怎么做?

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)

您可以 运行 使用 运行 一次搜索一个话题标签的 运行 循环,您可以 运行 搜索包含您需要的许多话题标签来自 Twitter's standard search operators 的 OR 运算符。这是一个更广泛的搜索,你会得到每个主题标签的混合结果包,但它减少了你提出的总体请求数量。

因此,将您所有的主题标签添加到一个字符串中,并将其作为您的查询传递。

#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 OR #reallycoolstuff OR #evencoolerstuff。执行此操作时可能值得增加返回的项目数量,因为搜索范围会更加广泛。

请记住,您可以搜索的查询大小是有限制的,因此如果您有很多主题标签,您可能需要将其分解为更小的查询。这也可以帮助您获得更好的结果(例如,查询字符串中更受欢迎的主题标签会占用您的大量结果,因此请单独搜索不太受欢迎的主题标签;不过,您将如何衡量,这取决于您!)

希望这可以帮助您入门。