Tutorial atualizado em agosto de 2022 por Anicely Santos
Embora já existam bastante dados disponíveis em formato aberto para serem analisados, ainda surgem momentos em que você precisa fazer uma análise e os dados não estão disponíveis para download em uma tabela toda arrumadinha. Nessas horas, saber uma linguagem de programação pode ser a sua melhor aliada para conseguir “libertar” esses dados.
Este tutorial tem como objetivo ensinar a extrair conteúdo de sites, tomando como exemplo a extração de dados sobre a agenda do governador do Rio de Janeiro e a lista de parlamentares eleitos de Pernambuco.
ACESSE O NOTEBOOK COM ESSE TUTORIAL VIA GOOGLE COLAB OU GITHUB
Na primeira parte você aprenderá a usar o pacote requests-html para fazer essa extração, a partir das tags HTML e seletores CSS. Já na segunda parte, você fará o processo de extração de uma maneira mais simples, utilizando o método read_html do Pandas, que é uma “mão na roda” quando os dados já estão organizados como uma tabela HTML.
Se você não sabe nada (ou não lembra bem) como funciona o Python e/ou a biblioteca Pandas, aconselhamos que você comece primeiro por aqui e depois volte para esse tutorial.
O notebook cobre os seguintes assuntos:
- O que é web scraping?
- Estrutura de uma página web
- HTML
- CSS
- Pacote requests-html
- Instalando a biblioteca
- Conectando com a URL
- Extraindo dados da agenda do governador do Rio de Janeiro
- Organizando os dados em um Data Frame
- Raspando dados com Pandas
- Lendo a tabela de dados de parlamentares de Pernambuco
O tutorial foi elaborado a partir do curso Python para Inovação Cívica, construído com o apoio da Python Software Foundation e da Jusbrasil, e baseado no módulo facilitado por Gabriela Cavalcante. O texto e o código foram adaptados por Anicely Santos, Adriano Belisario e Giulio Carvalho.
No google colab o endereço url = ‘http://www.rj.gov.br/Agenda.aspx’ está dando erro.
Ao acessar a página da erro 404
Atualizando para url = ‘http://secretarias.rj.gov.br/Agenda.aspx’ e funcionou.
Olá, Hugo!
Obrigada por informar. Fizemos os ajustes necessários e agora está funcionando novamente.