Escolha Uma Linguagem de Programação
- Eu acredito que é possível raspar dados com qqr lgg de programação
- Já vi exemplos de pessoas raspando dados com Java... C... JavaScript...
- Mas o fato é que a lgg mais 'adequadas' para esse tipo de tarefa
- Há uma discussão saudável sobre qual a melhor lgg para análise e raspagem de Dados
- R tem um Background Estatístico. É uma derivação de uma outra lgg chamda S. É boa para cálculos e plotagem de gráficos.
- Python é uma lgg de propósito mais geral
Scrapy:
- Deixe dizer de antemão: Nunca usei o Scrapy, mas acho que devo. Ele é mais robusto que as demais ferramentas que vou postar aqui. Tá na minha lista.
- Ele é mais robusto. Coisas que eu preciso combinar em duas bibliotecas, ele faz por si só.
- E o mais importante: é possível agendar os spiders.
Requests:
- É uma biblioteca para fazer requisições http
Beautiful Soup:
- É uma biblioteca para parsear html ou xml
Selenium
- É uma ferramenta para automatizar ações em browsers
- Para quem não tá familiarizado com desenvolvimento web. Quando vc abre uma página num navegador, na verdade aquilo é um documento, escrito com uma lgg de marcação. Como assim. É uma linguagem que permite que vc agrupe textos, imagens, multimidia em tags, que para todos os efeitos vamos chamar de caixinhas.
- Veja o título "Transparência / Prestação de Contas"
- Um tem azul claro e o outro escuro, pq foram colocados dentro de tags diferentes e regras diferentes foram aplicadas nessas caixas.
- Todas as informações no site estão dentro de tags. E tags estão dentro de tags. A tag que contem todos as outras tags é a body.
Por que é importante saber isso?
- Pq é imporante saber isso?
Por causa dos seletores!
- No desenvolvimento web, os seletores servem para identificar as tags que queremos modificar. As tags se relacionam entre si. Podem estar uma dentro das outras, uma ao lado da outra. Tags podem ter classes, que é como se nós déssemos nomes para as tags.
- As mesmas regras que nós utilizamos para selecionar e modificar as tags, atribuindo características, nós podemos utilizar para extrair informações com raspagem de dados
- Essas bibliotecas voltadas para raspagem de dados ou apenas interação com o navegador, tem métodos ou funções que utilizam os seletores para selecionar um elemento ou outro.
Texto Num Parágrafo
Texto num header
Texto Em Outro Parágrafo
Beautiful Soup
find_all('p')
Selenium
find_elements_by_tag_name('p')
Div mãe com elemento filho.
Div interna com algumas informações.
Div ainda mais interna.
Beautiful Soup
find_all("div", class_="interno")
Selenium
find_elements_by_class_name('interno')
Moral da história:
Ter noções de desenvolvimento web é uma mão na roda na hora de raspar dados.