Last active
September 1, 2022 00:06
-
-
Save marcoscastro/bc43e1741b4af47fda0ef289093aae01 to your computer and use it in GitHub Desktop.
Obtendo tweets de usuário com Python e tweepy
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# acessar https://apps.twitter.com para criar uma nova aplicação | |
# cada aplicação tem suas próprias chaves | |
import tweepy | |
import re | |
# acessar a aba "Keys and Access Tokens" | |
# passa o Consumer Key e o Consumer Secret | |
auth = tweepy.OAuthHandler('46pvnSwIVylfWepbPsP4433wL', 'xWDPHaUkk0ub93qj1DaYgJcO8QtkPUhNFIE7uBAvzbSVLLpLzR') | |
# define o token de acesso | |
# para criar basta clicar em "Create my access token" | |
# passa o "Access Token" e o "Access Token Secret" | |
auth.set_access_token('1952916806-9WbU9ROPLd4aVPprQZqWJhaW4RSXrBw4oK8A4Ow', | |
'gW5iuYPtrTxVhPmQxBemsKz6jCAOqbYx1fT0ewKHFyAkG') | |
# cria um objeto api | |
api = tweepy.API(auth) | |
# obtém tweets de um dado usuário | |
def obter_tweets(usuario, limite=10): | |
resultados = api.user_timeline(screen_name=usuario, count=limite, tweet_mode='extended') | |
tweets = [] # lista de tweets inicialmente vazia | |
for r in resultados: | |
# utiliza expressão regular para remover a URL do tweet | |
# http pega o início da url | |
# \S+ pega os caracteres não brancos (o final da URL) | |
tweet = re.sub(r'http\S+', '', r.full_text) | |
tweets.append(tweet.replace('\n', ' ')) # adiciona na lista | |
return tweets # retorna a lista de tweets | |
# escreve os tweets em um arquivo 'tweets.txt' | |
tweets = obter_tweets(usuario='jairbolsonaro', limite=100) | |
with open('tweets.txt', 'w') as f: | |
f.write('\n'.join(tweets)) |
Muito obrigada! Show!
Boa noite amigo, voce teria algum exemplo de como acessar media_url ? estou tendo dificuldade em achar
Olá,
estou aprendendo a usar o Python, e aprendi a buscar tweets com o uso do MongoDB. Vi o seu código e tentei usá-lo, porque é diferente daquele que usei. Mas ao executar a última linha de comando, ele retorna a mensagem abaixo:
---------------------------------------------------------------------------
UnicodeEncodeError Traceback (most recent call last)
<ipython-input-9-3d36259a11ba> in <module>()
2 tweets = obter_tweets(usuario='jairbolsonaro', limite=100)
3 with open('tweets.txt', 'w') as f:
----> 4 f.write('\n'.join(tweets))
~\Anaconda3\lib\encodings\cp1252.py in encode(self, input, final)
17 class IncrementalEncoder(codecs.IncrementalEncoder):
18 def encode(self, input, final=False):
---> 19 return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
21 class IncrementalDecoder(codecs.IncrementalDecoder):
UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f44d' in position 29: character maps to <undefined>
Como eu faço pra resolver esse erro?
Não precisa mais, acabei de descobrir.
# usei o encoding='utf8' e resolveu!
tweets = obter_tweets(usuario='ge_fla', limite=100)
with open('tweets.txt', 'w', encoding='utf8') as f:
f.write('\n'.join(tweets))
Olá, como eu faço para retornar também o o user_id do primeiro usuário marcado no tweet?? Alguém pode me ajudar?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Muito legal Marcos!!; não deixa as suas credencias abertas assim no código não!