Como extrair tweets do Twitter
Como extrair tweets do Twitter
UM TUTORIAL BĂSICO DE RASPAGEM DO TWITTER
Como extrair tweets do Twitter
Uma introdução råpida para copiar tweets do Twitter usando Python

visĂŁo global
A mĂdia social pode ser uma mina de ouro de dados em relação ao sentimento do consumidor. Plataformas como o Twitter se prestam a reter informaçþes Ăşteis, pois os usuĂĄrios podem postar opiniĂľes nĂŁo filtradas que podem ser recuperadas com facilidade. Combinar isso com outras informaçþes internas da empresa pode ajudar a fornecer uma visĂŁo sobre o sentimento geral que as pessoas podem ter em relação a empresas, produtos, etc.
Este tutorial pretende ser uma introdução rĂĄpida e direta para extrair tweets do Twitter em Python usando a API do Twitter do Tweepy ou GetOldTweets3 de Dmitry Mottl. Para fornecer orientação para este tutorial, decidi me concentrar em explorar dois caminhos: copiar tweets de um usuĂĄrio especĂfico e raspar tweets de uma pesquisa de texto geral.
Devido ao interesse em uma solução sem codificação para scraping tweets, minha equipe estĂĄ criando um aplicativo para atender a essa necessidade. Sim, isso significa que vocĂŞ nĂŁo precisa codificar para extrair dados! Estamos planejando ter um Alpha disponĂvel atĂŠ o final de 2020. Se vocĂŞ deseja receber atualizaçþes ou ser contatado quando estiver disponĂvel, inscreva-se em nossa lista de correspondĂŞncia abaixo!
Tweepy vs GetOldTweets3
Tweepy
Antes de chegarmos ao scraping real, Ê importante entender o que essas duas bibliotecas oferecem, portanto, vamos analisar as diferenças entre as duas para ajudå-lo a decidir qual usar.
Tweepy ĂŠ uma biblioteca Python para acessar a API do Twitter. Existem vĂĄrios tipos e nĂveis diferentes de acesso Ă API que o Tweepy oferece, conforme mostrado aqui , mas esses sĂŁo para casos de uso muito especĂficos. O Tweepy ĂŠ capaz de realizar vĂĄrias tarefas alĂŠm de apenas consultar tweets, conforme mostrado na imagem a seguir. Por uma questĂŁo de relevância, vamos nos concentrar apenas em usar essa API para copiar tweets.

Existem limitaçþes no uso do Tweepy para copiar tweets. A API padrĂŁo sĂł permite que vocĂŞ recupere tweets atĂŠ 7 dias atrĂĄs e ĂŠ limitada a 18.000 tweets em uma janela de 15 minutos. No entanto, ĂŠ possĂvel aumentar esse limite conforme mostrado aqui . AlĂŠm disso, usando o Tweepy, vocĂŞ sĂł pode retornar atĂŠ 3.200 dos tweets mais recentes de um usuĂĄrio. Usar Tweepy ĂŠ Ăłtimo para quem estĂĄ tentando fazer uso de outras funcionalidades do Twitter, fazendo consultas complexas, ou quer as informaçþes mais extensas fornecidas para cada tweet.
GetOldTweets3
GetOldTweets3 foi criado por Dmitry Mottl e Ê um fork de melhoria do GetOldTweets-python de Jefferson Henrqiue. Ele não oferece nenhuma das outras funcionalidades do Tweepy, mas se concentra apenas na consulta de tweets e não tem as mesmas limitaçþes de pesquisa do Tweepy. Este pacote permite que você recupere uma grande quantidade de tweets e tweets com mais de uma semana. No entanto, ele não fornece a extensão das informaçþes que o Tweepy possui. A imagem abaixo mostra todas as informaçþes que podem ser recuperadas dos tweets usando este pacote. TambÊm Ê importante notar que, a partir de agora, hå um problema aberto com o acesso aos dados geogråficos de um tweet usando GetOldTweets3.

Usar GetOldTweets3 Ê uma ótima opção para alguÊm que estå procurando uma maneira råpida e simples de fazer scraps ou quer contornar as limitaçþes de pesquisa padrão da API Tweepy para retirar uma quantidade maior de tweets ou tweets com mais de uma semana.
Embora se concentrem em coisas muito diferentes, as duas opçþes sĂŁo provavelmente suficientes para a maior parte do que a maioria das pessoas normalmente busca. SĂł depois de fazer uma raspagem com propĂłsitos especĂficos em mente ĂŠ que se deve realmente escolher entre usar uma das opçþes.
Tudo bem, chega de explicaçþes. Este Ê um tutorial de raspagem, então vamos pular para a codificação.

ATUALIZAĂĂO: escrevi um artigo de acompanhamento que faz um mergulho mais profundo em como obter mais informaçþes de tuĂtes, como informaçþes do usuĂĄrio, e refinar as consultas de tuĂtes, como procurar por tuĂtes por localização. Se vocĂŞ ler esta seção e decidir que precisa de mais, meu artigo de acompanhamento estĂĄ disponĂvel aqui .
Os Jupyter Notebooks para a seção a seguir estĂŁo disponĂveis em meu GitHub aqui . Criei funçþes para exportar arquivos CSV a partir dessas consultas de exemplo.
Raspar com Tweepy
Existem duas partes para fazer o scraping com o Tweepy porque ele requer credenciais de desenvolvedor do Twitter. Se você jå tem credenciais de um projeto anterior, pode ignorar esta seção.
Obtendo credenciais para Tweepy
Para receber credenciais, vocĂŞ deve se inscrever para se tornar um desenvolvedor do Twitter aqui . Isso requer que vocĂŞ tenha uma conta no Twitter. O aplicativo farĂĄ vĂĄrias perguntas sobre que tipo de trabalho vocĂŞ deseja fazer. NĂŁo se preocupe, esses detalhes nĂŁo precisam ser extensos e o processo ĂŠ relativamente fĂĄcil.

Depois de terminar o aplicativo, o processo de aprovação Ê relativamente råpido e não deve demorar mais do que alguns dias. Após ser aprovado, você precisarå fazer login e configurar um ambiente de desenvolvimento no painel do desenvolvedor e visualizar os detalhes desse aplicativo para recuperar suas credenciais de desenvolvedor, conforme mostrado na imagem abaixo. A menos que você especificamente tenha solicitado acesso às outras APIs oferecidas, agora você poderå usar a API Tweepy padrão.

Raspagem com Tweepy
Ătimo, vocĂŞ tem suas credenciais de desenvolvedor do Twitter e pode finalmente começar a eliminar alguns tweets.
Configurando a autorização Tweepy:
Antes de começar, você Tweepy terå que autorizar que possui as credenciais para utilizar sua API. O fragmento de código a seguir Ê como alguÊm se autoriza.
consumer_key = "XXXXXXXXX"
consumer_secret = "XXXXXXXXX"
access_token = "XXXXXXXXX"
access_token_secret = "XXXXXXXXX"auth = tweepy.OAuthHandler (consumer_key, consumer_secret)
auth.set_access_token (access_token, access_token_secret)
api = tweepy.API (auth, wait_on_rate_limit = True)
Extrair Tweets de um usuĂĄrio especĂfico do Twitter:
Os parâmetros de pesquisa em que me concentrei sĂŁo id e count. Id ĂŠ o nome de usuĂĄrio @ do usuĂĄrio especĂfico do Twitter e a contagem ĂŠ a quantidade mĂĄxima de tweets mais recentes que vocĂŞ deseja extrair da linha do tempo do usuĂĄrio especĂfico. Neste exemplo, uso o nome de usuĂĄrio @jack do CEO do Twitter e escolhi copiar 100 de seus tweets mais recentes. A maior parte do cĂłdigo de raspagem ĂŠ relativamente rĂĄpido e direto.
username = 'jack'
count = 150try:
# Criação de mÊtodo de consulta usando parâmetros
tweets = tweepy.Cursor (api.user_timeline, id = username) .items (count)
# Puxando informaçþes de tweets objeto iteråvel
tweets_list = [[tweet.created_at, tweet.id, tweet.text ] para tweet em tweets]
# Criação de dataframe da lista de tweets
# Adicionar ou remover colunas conforme você remove informaçþes de tweet
tweets_df = pd.DataFrame (tweets_list)exceto BaseException como e:
print ('falhou on_status,', str (e))
time.sleep (3)
Se vocĂŞ deseja personalizar ainda mais sua pesquisa, pode visualizar o restante dos parâmetros de pesquisa disponĂveis no mĂŠtodo api.user_timeline aqui .
Extração de tweets de uma consulta de pesquisa de texto:
Os parâmetros de pesquisa em que me concentrei sĂŁo q e count. q deve ser a consulta de pesquisa de texto com a qual vocĂŞ deseja pesquisar e a contagem ĂŠ novamente a quantidade mĂĄxima de tweets mais recentes que vocĂŞ deseja extrair dessa consulta de pesquisa especĂfica. Neste exemplo, eu analiso os 100 tweets mais recentes que foram relevantes para a eleição de 2020 nos EUA.
text_query =
contagem 'Eleiçþes dos EUA de 2020' = 150try:
# Criação de mÊtodo de consulta usando parâmetros
tweets = tweepy.Cursor (api.search, q = text_query) .items (contagem)
# Puxando informaçþes de tweets objeto iteråvel
tweets_list = [[tweet.created_at, tweet.id, tweet.text ] para tweet em tweets]
# Criação de dataframe da lista de tweets
# Adicionar ou remover colunas conforme você remove informaçþes de tweet
tweets_df = pd.DataFrame (tweets_list)
exceto BaseException como e:
print ('falhou on_status,', str (e))
tempo .sono (3)
Se vocĂŞ deseja personalizar ainda mais sua pesquisa, pode visualizar o restante dos parâmetros de pesquisa disponĂveis no mĂŠtodo api.search aqui.
Que outras informaçþes do tweet estĂŁo acessĂveis?
Uma das vantagens de consultar com Tweepy ĂŠ a quantidade de informaçþes contidas no objeto de tweet. Se vocĂŞ estiver interessado em obter outras informaçþes alĂŠm das que escolhi neste tutorial, vocĂŞ pode ver a lista completa de informaçþes disponĂveis no objeto de tweet do Tweepy aqui . Para mostrar como ĂŠ fĂĄcil obter mais informaçþes, no exemplo a seguir criei uma lista de tweets com as seguintes informaçþes: quando foi criado, o id do tweet, o texto do tweet, o usuĂĄrio ao qual o tweet estĂĄ associado e a quantos favoritos que o tweet tinha no momento em que foi recuperado.
tweets = tweepy.Cursor (api.search, q = text_query) .items (contagem)# Puxando informaçþes de tweets iteråvel
tweets_list = [[tweet.created_at, tweet.id, tweet.text, tweet.user, tweet.favorite_count] para tweet em tweets]# Criação de dataframe da lista de tweets
tweets_df = pd.DataFrame (tweets_list)
Raspagem com GetOldTweets3
PROBLEMA CONTĂNUO: GETOLDTWEETS3 E ALGUNS OUTROS SCRAPERS ESTĂO ATUALMENTE EXECUTANDO EM 404 ERROS AO SCRAPING. ESTE Ă UM PROBLEMA CONTĂNUO E ESPERA ATUALIZAĂĂES DA BIBLIOTECA DE PYTHON. Tweepy nĂŁo tem este problema atualmente: https://github.com/Mottl/GetOldTweets3/issues/98
Usar GetOldTweets3 não requer nenhuma autorização como o Tweepy requer, você só precisa instalar a biblioteca pip e pode começar imediatamente.
ComentĂĄrios
Postar um comentĂĄrio