with from example code bot python search twitter tweepy

python - from - tweepy example code



Tweepy(Twitter API) no devuelve todos los resultados de búsqueda (2)

Estoy usando la función de búsqueda con Tweepy para Twitter y por alguna razón los resultados de búsqueda están limitados a 15. Aquí está mi código

results=api.search(q="Football",rpp=1000) for result in results: print "%s" %(clNormalizeString(result.text)) print len(results)

y solo se devuelven 15 resultados. ¿Tiene algo que ver con diferentes páginas de resultados o algo así?


Aquí hay un ejemplo de trabajo mínimo (una vez que reemplaza las claves falsas con las reales).

import tweepy from math import ceil def get_authorization(): info = {"consumer_key": "A7055154EEFAKE31BD4E4F3B01F679", "consumer_secret": "C8578274816FAEBEB3B5054447B6046F34B41F52", "access_token": "15225728-3TtzidHIj6HCLBsaKX7fNpuEUGWHHmQJGeF", "access_secret": "61E3D5BD2E1341FFD235DF58B9E2FC2C22BADAD0"} auth = tweepy.OAuthHandler(info[''consumer_key''], info[''consumer_secret'']) auth.set_access_token(info[''access_token''], info[''access_secret'']) return auth def get_tweets(query, n): _max_queries = 100 # arbitrarily chosen value api = tweepy.API(get_authorization()) tweets = tweet_batch = api.search(q=query, count=n) ct = 1 while len(tweets) < n and ct < _max_queries: print(len(tweets)) tweet_batch = api.search(q=query, count=n - len(tweets), max_id=tweet_batch.max_id) tweets.extend(tweet_batch) ct += 1 return tweets

Nota: Intenté utilizar un bucle for, pero la API de Twitter a veces devuelve menos de 100 resultados (a pesar de que se le pidieron 100 y 100 están disponibles). No estoy seguro de por qué esto es así, pero esa es la razón por la que no incluí un cheque para romper el ciclo si tweet_batch está vacío; es posible que desee agregar dicho control ya que hay un límite de tasa de consultas .

Otra nota: puede evitar alcanzar el límite de velocidad invocando wait_on_rate_limit=True como tal

api = tweepy.API(get_authorization(), wait_on_rate_limit=True)


La pregunta es más acerca de Twitter API en lugar de tweepy sí mismo.

De acuerdo con la documentación , el parámetro de count define:

La cantidad de tweets que se devolverán por página, hasta un máximo de 100. El valor predeterminado es 15. Este fue anteriormente el parámetro "rpp" en la antigua API de búsqueda.

FYI, puedes usar tweepy.Cursor para obtener resultados paginados, como este:

import tweepy auth = tweepy.OAuthHandler(..., ...) auth.set_access_token(..., ...) api = tweepy.API(auth) for tweet in tweepy.Cursor(api.search, q="google", count=100, result_type="recent", include_entities=True, lang="en").items(): print tweet.created_at, tweet.text

Ver también: https://github.com/tweepy/tweepy/issues/197 .

Espero que ayude.