Как получить 3200 твитов из нового API Twitter и что такое альтернатива GetOldTweets3?

#python #web-scraping #twitter #python-twitter

#python #очистка веб-страниц #Twitter #python-twitter

Вопрос:

Как ясно GetOldTweets3 , это библиотека python для доступа к старым твитам, что нелегко реализовать с помощью таких библиотек, как Tweepy . Но в последнее время из-за нового API Twitter возникла нерешенная проблема: https://github.com/Mottl/GetOldTweets3/issues/98 .

Вопрос в том, какова GetOldTweets3 альтернативная библиотека для получения твитов без ограничений по времени? По моему опыту, Tweepy невозможно получить более 200 твитов.

Ответ №1:

Пока единственный метод очистки твитов, который все еще работает, — это метод jsonl snscrape. или это https://github.com/rsafa/get-latest-tweets /

Ответ №2:

Ограничение в 200 твитов — это максимум для каждого запроса. Вы можете извлекать последовательные «страницы» твитов, используя возвращаемый next параметр для запроса следующей страницы из 200. Если вы используете стандартный поисковый API, эти запросы перестанут возвращать твиты старше недели. С полным архивом Premium Search API вы можете получить все твиты, начиная с 2006 года.

Это подробно объясняется здесь: https://developer.twitter.com/en/docs/twitter-api/v1/tweets/search/api-reference

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

1. Не могли бы вы сказать мне, как именно я могу получить более 200 твитов с помощью Tweepy? `def text_query_to_csv(text_query, count): попробуйте: для твита в api.search(q= text_query, count=count): # Добавление в список, содержащий все твиты tweets.append((tweet.created_at, tweet.user.screen_name, tweet.text, tweet.entities)) tweetsdf= pd.DataFrame(твиты, столбцы=[‘Дата-время’, ‘Имя экрана’, ‘Текст’, ‘Сущности’]) tweetsdf.to_csv(‘{}-tweets.csv’.format(text_query))

2. Я не использую Tweepy, но могу привести пример использования TwitterAPI . github.com/geduldig/TwitterAPI/blob/master/examples /…

Ответ №3:

Я бы рекомендовал использовать snscrape. Собранные таким образом идентификаторы затем могут быть переданы в api.statuses_lookup. Используя api.statuses_lookup, вы можете загружать 300 * 100 твитов за 15 минут через Twitter api.

 # you have a list with all Tweets ids created with snscrape: all_id_list
# split list in a list of list with 100 ids

id_list = [all_id_list[x:x 100] for x in range(0, len(all_id_list), 100)]

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
api = tweepy.API(auth)

# iterated over the list to get per request 100 tweets over the twitter api
for i in id_list:
     tweets = api.statuses_lookup(list(id_list[i]))

     for tweet in tweets:
          print(tweet.text)