developer - ¿Cómo puedo obtener tweets anteriores a una semana(usando tweepy u otras bibliotecas de Python)?
twitter developer login (7)
He estado tratando de resolver esto, pero esto es realmente frustrante. Estoy tratando de obtener tweets con un determinado hashtag (una gran cantidad de tweets) usando Tweepy. Pero esto no se remonta más de una semana. Necesito regresar al menos dos años por un período de un par de meses. ¿Esto es posible? Si es así, ¿cómo?
Solo por el control aquí está mi código
import tweepy
import csv
consumer_key = ''####''
consumer_secret = ''####''
access_token = ''####''
access_token_secret = ''####''
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
# Open/Create a file to append data
csvFile = open(''tweets.csv'', ''a'')
#Use csv Writer
csvWriter = csv.writer(csvFile)
for tweet in tweepy.Cursor(api.search,q="#ps4",count=100,/
lang="en",/
since_id=2014-06-12).items():
print tweet.created_at, tweet.text
csvWriter.writerow([tweet.created_at, tweet.text.encode(''utf-8'')])
Actualización de 2018: Twitter tiene API de búsqueda Premium que pueden devolver resultados desde el principio de los tiempos (2006):
https://developer.twitter.com/en/docs/tweets/search/overview/premium#ProductPackages
Tweets de búsqueda: punto final de 30 días → proporciona Tweets de los últimos 30 días.
Tweets de búsqueda: punto final de archivo completo → proporciona acceso completo e instantáneo a los tweets que datan desde el primer tweet en marzo de 2006.
Con un ejemplo de cliente de Python: https://github.com/twitterdev/search-tweets-python
Como habrás notado que la API de Twitter tiene algunas limitaciones, he implementado un código que hace esto usando la misma estrategia que Twitter corriendo sobre un navegador. Echa un vistazo, puedes obtener los tweets más antiguos: https://github.com/Jefferson-Henrique/GetOldTweets-python
Como otros han notado, la API de Twitter tiene la limitación de fecha, pero no la búsqueda avanzada real implementada en twitter.com. Entonces, la solución es usar Python''s wrapper para Selenium o PhantomJS para iterar a través del punto final de twitter.com. Aquí hay una implementación usando Selenium que alguien ha publicado en Github: https://github.com/bpb27/twitter_scraping/
Encontré un código que ayudaría a recuperar tweets más antiguos. https://github.com/Jefferson-Henrique/GetOldTweets-python
Para obtener tweets antiguos, ejecute el siguiente comando en el directorio donde se extrajo el depósito de código.
python Exporter.py --querysearch ''keyword'' --since 2016-01-10 --until 2016-01-15 --maxtweets 1000
Y devolvió un archivo ''output_got.csv'' con 1000 tweets durante los días anteriores con su palabra clave
Necesita instalar un módulo ''pyquery'' para que esto funcione
PD: Puede modificar el archivo de código python ''Exporter.py'' para obtener más atributos de tweet según su requisito.
No puede usar la API de búsqueda de Twitter para recopilar tweets de hace dos años. Por los documentos:
También tenga en cuenta que los resultados de búsqueda en twitter.com pueden arrojar resultados históricos, mientras que la API de búsqueda generalmente solo sirve tweets de la semana pasada. - Documentación de Twitter .
Si necesita una forma de obtener tweets antiguos, puede obtenerlos de usuarios individuales porque recopilar tweets de ellos está limitado por el número en lugar del tiempo (por lo que en muchos casos puede retroceder meses o años). Un servicio de terceros que recopile tweets como Topsy puede ser útil en su caso (se cerró a partir de julio de 2016, pero existen otros servicios).
Puede utilizar las API de reposo para obtener tweets anteriores a una semana Para obtener más información, visite la referencia de la API de Twitter https://dev.twitter.com/rest/reference/get/statuses/user_timeline
use los argumentos "desde" y "hasta" para ajustar su cronograma. Actualmente está utilizando since_id, que debe corresponderse con los valores de identificación de Twitter (no las fechas):
for tweet in tweepy.Cursor(api.search,
q="test",
since="2014-01-01",
until="2014-02-01",
lang="en").items():