Почему мой параметр count/n ограничен 100 для api.search_tweets в tweepy?

#python #database #twitter #tweepy

Вопрос:

Я хочу получить не менее 10 000 самых последних твитов, содержащих слово «биткойн», с помощью tweepy. Я проверил параметры, и люди в Интернете говорят, что количество твитов (количество), которое api.search_tweets() tweepy может достигать 18 000… но когда я использую 10 000 в качестве подсчета, он возвращает только список из 100 самых последних твитов. Я прикрепил ниже код, чтобы проверить. Дайте мне знать, если кто-нибудь знает ответ на этот вопрос.

 # setting my query
search_term = "bitcoin -filter:retweets"
# making a list of all tweets with my query
search_tweets = api.search_tweets(q = search_term, lang = "en", count = 10000)

# shows me how many tweets api.search_tweets() gets
print(f"Number of tweets found: {len(search_tweets)}")

# loops through each tweet in search_tweets and prints information about each tweet
for tweet in search_tweets:
    print(f"{tweet.user.name} tweeted: ")
    print(tweet.text)
    print(f"# of likes: {tweet.favorite_count}")
    print(f'# of retweets: {tweet.retweet_count}')
    print("-------------------------------------------------------------------------------") #seperates each tweet
 

это выводит это:
https://i.stack.imgur.com/BHQuV.png

Вы можете видеть, что это работает, но мы по-прежнему получаем список из 100 твитов только тогда, когда мое количество составляет 18 000…

Ответ №1:

Вы проверили документацию? Этот запрос ограничен 100 за один раз.

https://developer.twitter.com/en/docs/twitter-api/v1/tweets/search/api-reference/get-search-tweets

 count   optional    The number of tweets to return per page, up to a maximum of 100. Defaults to 15. This was formerly the "rpp" parameter in the old Search API.       100
 

Комментарии:

1. О!! Наверное, я неправильно понял … там написано 100 на страницу, вы знаете, как я могу сделать несколько страниц?

2. Нет. Вы можете попробовать добавить «страница=2» в качестве эксперимента, но это всего лишь предположение. В документации это не описано.

Ответ №2:

Используйте курсор tweepy, чтобы получить более 100 твитов.

Вот пример:

 n=500

tweets=tweepy.Cursor(api.search_tweets,q="#bitcoin",lang="en",tweet_mode="extended").items(n)


tweets_json=[]
for tweet in tweets:
   tweets_json.append(tweet._json)
 

Это вернет список, содержащий информацию о твите в формате json.