Utilizando Python para armazenar notícias — Google News API

Crie um código em Python para capturar as notícias do Google diretamente para o seu programa


Apesar do grande crescimento do web scraping (coleta de dados na Web) nos últimos anos, principalmente com o uso da bibliotecas BeautifulSoup e/ou Selenium, esse processo é muitas vezes custoso. Sendo necessário adaptar o código para um site específico ou de correr o risco de ser bloqueado por algum sistema de segurança.

Há outros métodos mais simples de capturar notícias com Python. Vários desenvolvedores disponibilizam sua API (Application Programming Interface) e nesse artigo falaremos um pouco do GoogleNews.

Essa API está disponível no site The Python Package Index (PyPI), o repositório para a linguagem Python. Quando precisar de alguma funcionalidade específica, é sempre muito útil realizar uma busca nos repositórios existentes.

A primeira coisa que você deve fazer, independente se está usando o pacote Anaconda, PyCharm ou o Google Colab, é verificar se os pacotes que irá usar estão instalados. Diretamente no Jupyter Notebook, deve executar o seguinte comando:

!pip install GoogleNews

O símbolo de exclamação é utilizado para executar comandos no Jupyter Notebook como se você estivesse utilizando o terminal. Após a instalação, podemos importar os pacotes que utilizaremos.

Para armazenar as notícias em um data frame utilizares o nosso conhecido pandas.

Precisamos apenas instanciar um objeto da classe GoogleNews e utilizar os seus métodos. Vamos primeiro testar definindo o período diário. Lembrar que o padrão do pacote é trazer notícias em inglês, portanto precisamos definir o idioma pt-BR para trazer notícias em português.

Passamos a palavra que desejamos buscar para a função search( ). Que definirá essa palavra como parâmetro de busca.

Após isso, é só utilizar a função result( ) para trazer os resultados. Observe que os resultados são armazenados na estrutura de dados Dictionary.

O retorno de result( ) é uma estrutura de Dictionary

Para armazenar em DataFrame Pandas só precisamos passar esses dados para o DataFrame( ) como no exemplo abaixo:

Armazenando os dados em um DataFrame.

Possuindo os dados em um DataFrame fica muito mais fácil de trabalhar com eles.

Existem outras opções para utilização do GoogleNews como a definição de um período para busca das notícias:

googlenews=GoogleNews(start='08/01/2020',end='08/31/2020')

Ou se desejar capturar somente os links dos sites que está buscando:

googlenews=googlenews.get__links()

A funcionalidade de capturar somente os links pode ser bem útil para utilizarmos com a biblioteca Article e assim realizar o download das notícias.

Mas isso é tema de outro artigo.

O código para teste está disponível aqui:

Qualquer dúvida, nos mande uma direct em @aprendadatascience !

Obrigado!