#python #twitter #tweepy
#python #Twitter #tweepy
Вопрос:
import tweepy,re,json,matplotlib.pyplot as plt, seaborn as sns,pandas as pd
from textblob import TextBlob
consumer_key = "key"
consumer_secret = "key"
access_key = "key"
secret_key = "key"
autenticacion = tweepy.OAuthHandler(consumer_key, consumer_secret)
autenticacion.set_access_token(access_key, secret_key)
"""Variable donde voy a llamar a la API"""
api = tweepy.API(autenticacion, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
results = tweepy.Cursor(api.search, q='Panamá', tweet_mode="extended",lang="en",since='2020-11-12',until='2020-11-18').items(2000)
term = 'Panamá'
json_data = [r._json for r in results]
df = pd.io.json.json_normalize(json_data)
Я пытаюсь извлечь тысячу твитов с сегодняшней даты неделю назад, но все твиты, которые я извлекаю, относятся к сегодняшней дате. Как мне равномерно извлекать твиты с датами от недели назад до сегодняшнего дня?
Ответ №1:
Сам API Twitter не поддерживает равномерное распределение результатов на ежедневной основе в течение недели, поэтому вам придется реализовать это самостоятельно. Параметр count поддерживает не более 100 результатов на страницу. На данный момент ваш код в основном запрашивает 100 твитов, оглядываясь назад.
Вы можете попробовать следующее:
- разбейте ваши 1000 результатов на 7 дней (чтобы упростить задачу, давайте сделаем это 100 раз в день, итого 700 твитов)
- создайте цикл в 7 проходов вокруг вашего второго блока кода и для каждой итерации выполняйте поиск по 100 результатам, каждый раз создавая значения
since
иuntil
для того же дня, так'2020-11-12'
'2020-11-12'
,'2020-11-13'
чтобы'2020-11-13'
, и т. Д - на каждой итерации цикла добавляйте свои данные в dataframe
Также обратите внимание, что строка, в которой у вас term = 'Panamá'
есть, по-видимому, не используется в приведенном выше коде.