【问题标题】:Getting tweets for different hashtags in one call using Tweepy使用 Tweepy 在一次通话中获取不同主题标签的推文
【发布时间】:2021-06-03 03:55:13
【问题描述】:

我想使用 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)

【问题讨论】:

    标签: python twitter tweepy rate-limiting


    【解决方案1】:

    您可以使用Twitter's standard search operators 中的 OR 运算符运行包含您需要的许多主题标签的搜索,而不是运行一次搜索一个主题标签的 for 循环。这是一个更广泛的搜索,对于每个主题标签,您会得到好坏参半的结果,但它会减少您提出的总体请求数量。

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

    #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。这样做可能值得增加返回的项目数,因为搜索范围会更广。

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

    希望这可以帮助您入门。

    【讨论】:

    • 我知道这个 OR 操作并且以前使用过。但这并不能解决我的问题,因为 OR 不会为所有主题标签提供结果。
    • 不幸的是,我认为您介于两者之间,因为如果您必须查看每个主题标签的完整结果,您将无法超过该速率限制。您必须一次搜索一个。速率限制相当慷慨,但我想这取决于您使用它的目的/您正在搜索的主题标签数量。如果您将每个 OR 减少到两个学期,那么您的费率限制就会增加一倍;您很有可能会同时获得两者的结果,而不是每个结果的完整数字。
    • 以上内容有点偶然,您最终可能会得到倾斜的数据,但我不相信有任何方法可以减少您正在寻找的搜索方式,至少使用搜索 API。但我希望你能找到办法!
    猜你喜欢
    • 2017-12-10
    • 2012-07-14
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 2017-11-25
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多