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)
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))
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