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

Imagem para postagem
Foto da P exels

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

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.

Imagem para postagem
Lista de vĂĄrias funcionalidades oferecidas por meio da API padrĂŁo do Tweepy.

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

Imagem para postagem
Lista de informaçþes que podem ser recuperadas no objeto de tweet de GetOldTweet3.

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.

Imagem para postagem
Foto de Pexels

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.

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.

Imagem para postagem
PĂĄgina de destino do desenvolvedor do Twitter.

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.

Imagem para postagem
Credenciais de desenvolvedor 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 = 150
try:
# 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' = 150
try:
# 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

Ebook

Postagens mais visitadas