#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.