Raspagem de dados do Twitter com Python [com 2 APIs]

Publicados: 2020-11-30

Índice

Introdução

Plataformas de mídia social como o Twitter são um dos grandes repositórios para coletar conjuntos de dados. Trabalhar em um novo projeto de ciência de dados requer uma quantidade razoável de dados, coletar o conjunto de dados não é uma tarefa fácil.

E o Twitter fornece um gênero diversificado de dados porque é uma coleção de tweets de pessoas com mentalidades e sentimentos diferentes. Esse tipo de conjunto de dados sem viés é um pré-requisito muito necessário para treinar um novo modelo de aprendizado de máquina.

Vamos começar!

Vamos percorrer 2 APIs para raspagem de dados do Twitter.

  1. Tweepy
  2. Twint

Tweepy

Antes de começarmos a percorrer o código python para extrair dados usando a API Tweepy, há um ponto em que você precisa saber que precisamos de credenciais de uma conta de desenvolvedor do Twitter e é muito fácil se você já as tiver.

Para as pessoas que não têm uma conta de desenvolvedor, você pode solicitar isso aqui . E antes de solicitar uma conta de desenvolvedor, você precisa ter uma conta no Twitter. A solicitação de uma conta de desenvolvedor é um processo fácil e o aplicativo faz algumas perguntas básicas, como o motivo da inscrição, etc. E a aprovação da conta de desenvolvedor geralmente leva de 2 a 3 dias.

Depois de receber a aprovação da conta de desenvolvedor, anote suas chaves de API de consumidor, token de acesso e segredo do token de acesso na seção "chaves e tokens".

Além disso, há um ponto a ser observado que existem poucas restrições para tweepy, como você só pode raspar tweets que não tenham mais de uma semana. E um limite na raspagem, até 18.000 tweets em um período de 15 minutos.

Ótimo, agora que temos chaves e tokens da conta do desenvolvedor, vamos autorizá-los.

consumer_key = sua chave de consumidor

consumer_secret = seu segredo de consumidor

access_token = seu token de acesso

access_token_secret = seu segredo de token

autorização = tweepy.OAuthHandler(consumer_key, consumer_secret)

autorização.set_access_token(access_token, access_token_secret)

api = tweepy.API(autorização,wait_on_rate_limit = True )

Agora que autorizamos com nossas credenciais, vamos raspar os tweets de uma conta específica. Por enquanto, vamos raspar os tweets do Sr. Sundar Pichai.

nome de usuário = ' sundarpichai '

contagem = 100

tente :

#linha 1

tweets_obj = tweepy.Cursor(api.user_timeline,id = nome de usuário).items(count)

#linha 2

tweets_list = [[tweet.created_at, tweet.id, tweet.text] para tweet em tweets_obj]

#linha3

tweets_df = pd.DataFrame(tweets_list)

exceto BaseException como e:

print ( ' algo deu errado, ' , str (e))

No trecho acima, a linha1 cria um objeto iterável com todos os tweets e é atribuído a uma variável “tweets_obj”. Quando terminarmos de criar um objeto iterável, vamos iterar sobre ele e extrair todos os dados.

Estamos extraindo apenas alguns atributos como “created_at”, “id”, “text” e anexando-os a cada entrada em um array 2D. Onde cada entrada tem todos os dados de cada tweet que raspamos. Agora que temos um array 2D com atributos como cada entrada, podemos convertê-lo em um quadro de dados usando a sintaxe “pd.DataFrame()”.

A razão para converter uma matriz em um quadro de dados é mais flexibilidade, disponibilidade de métodos predefinidos e fácil acesso que o destaca de todas as estruturas de dados para projetos de ciência de dados.

Da mesma forma, vamos percorrer um código para extrair dados que possuem uma consulta de texto específica.

text_query = ' vocal para local '

contagem = 100

tente :

#linha 1

tweets_obj = tweepy.Cursor(api.search,q = text_query).items(count)

#linha 2

tweets_list = [[tweet.created_at, tweet.id, tweet.text] para tweet em tweets_obj]

#linha3

df = pd.DataFrame(lista_tweets)

exceto BaseException como e:

print ( ' algo deu errado, ' , str (e))

No trecho acima, tudo é igual ao trecho anterior. Por fim, criamos um data frame com todos os tweets contendo a consulta de texto “vocal for local”.

Se você estiver procurando por uma raspagem de dados mais específica ou personalizada, como incluir mais atributos, como contagem de retuítes, contagem de favoritos, etc. Podemos personalizar nossa sintaxe e extrair outros atributos fornecidos pelo tweepy. Para ler mais sobre outros atributos oferecidos pelo tweepy, dê uma olhada na documentação .

Twint

A API Twint não requer credenciais de conta de desenvolvedor, você pode raspar tweets facilmente sem nenhuma chave de autorização. Além disso, o twint não tem restrições como o número de tweets, prazos, limites de raspagem, etc. Twint fornece uma raspagem de dados perfeita e uma API fácil de usar.

Podemos imprimir a lista de seguidores de uma pessoa usando seu nome de usuário da API twint.

t_obj = twint.Config()

t_obj.Username = sundarpichai

twint.run.Followers(t_obj)

No trecho acima, twint.Config() configura a API twint e faz as coisas começarem. E depois de atribuir um objeto, podemos usar essa referência para nosso trabalho, “t_obj.Username” atribui o nome de usuário que inserimos. E twint.run.Followers realizam uma busca de todos os seguidores desse nome de usuário.

Também podemos armazenar os dados raspados em um quadro de dados semelhante à API tweepy.

t_obj.Limite = 100

t_obj.Username = sundarpichai

t_obj.Pandas = Verdadeiro

twint.run.Followers(t_obj)

result_df = twint.storage.panda.User_df

Tudo no trecho é quase igual ao trecho anterior, apenas com uma linha extra de sintaxe “twint.storage.panda.User_df” que converte os dados extraídos em um quadro de dados. O quadro de dados de resultado consiste em uma lista de seguidores do nome de usuário fornecido.

Agora que vimos a extração dos dados do seguidor de um nome de usuário específico, vamos percorrer o código para extrair os tweets de uma conta específica.

t_obj.Search = from:@sundarpichai

t_obj.Store_object = Verdadeiro

t_obj.Limite = 20

twint.run.Search(t_obj)

tweets = t.search_tweet_list

imprimir (tweets)

No trecho acima, estamos fazendo o objeto configurado para pesquisar tweets de uma determinada pessoa, também podemos definir o limite de tweets durante a raspagem usando a sintaxe “t_obj.Limit”. E depois de executar a pesquisa, ele cria uma lista de todos os tweets e podemos atribuí-la a uma variável local conforme nossa necessidade.

Depois de ver os trechos de informações de raspagem de uma conta específica, você pode ter uma pergunta rápida: como raspar tweets contendo uma palavra-chave específica?. Não é um problema que o twint tem uma solução para isso.

t_obj.Search = ciência de dados

t_obj.Store_object = Verdadeiro

t_obj.Limite = 100

twint.run.Search(t_obj)

tweets = t.search_tweet_list

imprimir (tweets)

O snippet acima é igual ao snippet para extrair tweets de uma conta específica, com uma única diferença na linha1. Também podemos convertê-lo em um quadro de dados conforme nossa conveniência.

Para ler mais sobre a API twint, dê uma olhada em seu repositório e documentação .

Conclusão

Entendemos a importância de raspar os dados. Percorremos duas APIs e seus recursos para extrair dados do Twitter. Vi alguns métodos para converter os dados raspados em nosso formato de arquivo necessário. Agora que você conhece essas APIs, comece a extrair dados para seus projetos de ciência de dados!

Nós da upGrad estamos felizes em ajudá-lo e também gostaríamos de informá-lo sobre as oportunidades que você pode ter aprendendo python. O Python tem sido usado extensivamente para Machine Learning e Data Science, duas das tecnologias mais populares e emergentes. Aprender Python e também ter conhecimento dessas habilidades fará com que você se destaque em seu campo e obtenha melhores oportunidades de carreira.

Temos muitos cursos desenvolvidos em conjunto com especialistas do setor e institutos acadêmicos de primeira linha para fornecer a você todas as habilidades necessárias para se destacar neste campo. Alguns dos cursos que podem ajudá-lo a usar seus conhecimentos em python e aumentar suas perspectivas de carreira:

Ciência de dados:

Confira os Programas de Ciência de Dados Online da upGrad desenvolvidos com o IIIT-B, é um curso completo de ciência de dados para entrar neste campo e deixar uma marca nas indústrias com seu conhecimento.

Masters of Science in Data Science : Desenvolvido em coordenação com a Liverpool John Moores University e o IIIT-B, obteve um mestrado em Data Science de uma das melhores universidades do mundo.

Aprendizado de máquina:

Certificação Avançada em Aprendizado de Máquina e IA : IIT madras, uma das melhores instituições educacionais da Índia, fez uma parceria com a upGrad para fazer um curso avançado de Aprendizado de Máquina para que os indivíduos tenham conhecimento completo de Aprendizado de Máquina com este curso.

Mestrado em Aprendizado de Máquina e IA : A Liverpool John Moores University e o IIIT-B fizeram uma parceria com a upGrad para fornecer mestrados completos em ciências para que os indivíduos aprendam a tecnologia em detalhes e obtenham um diploma formal nesta tecnologia para pavimentar um sucesso caminho neste campo.

PG Diploma in Machine Learning and AI : IIIT-B e upGrad se uniram para ajudar os indivíduos a ter a oportunidade de fazer um curso de 12 meses sobre Machine Learning e AI e ter a chance de entrar nessa tecnologia com este curso.

O que é a raspagem de dados?

A raspagem de dados refere-se a um processo no qual um software de computador extrai dados de uma saída criada por outro programa. A raspagem da Web é um tipo de raspagem de dados usado para coletar dados ou informações de diferentes sites. Na raspagem da web, um aplicativo é usado para coletar informações valiosas de um site. O programa de raspagem da web pode acessar rápida e facilmente a WWW (World Wide Web) usando o HTML (Hypertext Transfer Protocol) ou um navegador da web.

Por que a raspagem de dados é necessária no Twitter?

A raspagem de dados nas mídias sociais ajuda a rastrear, avaliar e examinar os dados disponíveis nas plataformas. O Twitter é a plataforma mais popular, e a coleta de dados do Twitter ajuda os usuários a analisar o comportamento do usuário, a estratégia de concorrência, a análise de sentimentos e a manter-se atualizado com o que está acontecendo no canal social mais popular do mundo a partir dos tweets de pessoas, colegas e empresas que importa para você. O serviço de raspagem de dados do Twitter lida com suas necessidades de ponta a ponta no menor tempo possível e fornece os dados necessários. O Twitter, por exemplo, só permite que rastreadores coletem dados por meio de sua API para restringir a quantidade de informações sobre seus usuários e suas atividades.

O que são APIs?

As Interfaces de Programação de Aplicativos são os minúsculos bits de código que permitem que dispositivos digitais, programas de software e servidores de dados se comuniquem entre si, e são a espinha dorsal vital de muitos dos serviços dos quais confiamos atualmente. Uma API conecta computadores ou softwares uns aos outros, ao contrário de uma interface de usuário, que conecta um computador a um ser humano. Ele não foi projetado para uso direto por qualquer pessoa (usuário final) que não seja um programador de computador que o incorpore ao software. Uma API é frequentemente composta por muitos componentes que servem como ferramentas ou serviços para o programador.