Pesquisar por Tweets

Na API Rest também podemos utilizar o método search para procurar por tweets que combinam com o termo definido.

O método contém algumas opções como:

api.search(q, count, max_id, lang)

  • q - é o parâmetro que terá o termo a ser pesquisado.
  • count - é a quantidade de tweets que serão retornados. O limite é 100 e o padrão é 15.
  • max_id - retorna apenas os tweets com o ID menor ou igual ao que foi especificado.
  • lang - restringe a busca por tweets de um determinado idioma.

In [ ]:
import tweepy

In [ ]:
consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''

autorizar = tweepy.OAuthHandler(consumer_key, consumer_secret)
autorizar.set_access_token(access_token, access_token_secret)

In [ ]:
api = tweepy.API(autorizar)
print(api)

Pesquisando


In [ ]:
tweets = api.search(q='Python', lang='pt') # Teste o parâmetro count=150

for i, tweet in enumerate(tweets, start=1):
    print("%d ---- %s" % (i, tweet.text))

Recuperar 1000 tweets


In [ ]:
tweets_salvos = []
ultimo_id = -1
qtde_tweets = 1000

In [ ]:
while len(tweets_salvos) < qtde_tweets:
    contador = qtde_tweets - len(tweets_salvos)
    try:
        novos_tweets = api.search(q='Python', count=contador, max_id=str(ultimo_id - 1)) # Teste com o parâmetro lang='pt'
        if not novos_tweets:
            print("Nenhum tweet para recuperar")
            break
        tweets_salvos.extend(novos_tweets)
        ultimo_id = novos_tweets[-1].id
    except tweepy.TweepError as e:
        print("Erro:", (e))
        break

In [ ]:
for i, tweet in enumerate(tweets_salvos, start=1):
    print("{} ---- {}".format(i, tweet.text))

Os códigos do parâmetro lang deve seguir a ISO 639-1 - https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes

Maiores informações: https://dev.twitter.com/rest/public/timelines