Web Scrapping de Várias Páginas Diferentes(link da próxima pagína dentro do HTML a ser interpretado)

Olá tudo bem? Me matriculei no Curso de Web Scrapping, sei alguma coisa rvest:: e httr:: mas estou iniciando na área.

Estou tentando baixar essa tabela com as moções de aplauso da Câmara Municipal da minha cidade, disponível no url abaixo. Quero tentar baixar toda tabela de 8000 moções, que só exibe 15 linhas em uma página.

url = http://www.camarajf.mg.gov.br/sal/listapropos.php?orig=&numero=&ano=&autor=&ementa=&palavra=&codtipo=MOC&btnprocurar=Procurar

para baixar o a primeira página, é só fazer um GET (url= url ).

O site inteiro é uma table, e no final dela, tem o link para a próxima página, como está na imagem abaixo:

meu problema é: para ter o link da segunda página eu tenho que baixar a primeira página, parsear o html todo e buscar o link da segunda página. Com esse link, vou fazer um novo get, pegar o link da terceira e assim sucessivamente.

O link do proximo html a ser baixado está sempre no html que eu acabei de baixar.

imagino que haja uma forma menos manual de fazer isso, porque assim é impossível.

qual a melhor forma de automatizar esse processo de baixar várias páginas ao mesmo tempo? Loops? Ou Existe uma função pra isso?

Olá @marcellofilgueiras, tudo bem?

O que descobri olhando seu site ao clicar na próxima página é que o site adiciona um parâmetro “pg=” no GET ao trocar de página. pg=0 é a primeira página, pg=1 é a segunda página, e assim por diante.

Ao pesquisar a primeira página, sabemos o total de resultado. Além disso, cada página gera 15 resultados. Ou seja, podemos calcular o total de páginas dividindo por 15 e arredondando para cima.

Então o que fiz foi

  1. Criar uma função que calcula o número de páginas
  2. Criar uma função que baixa uma página
  3. Com a primeira página baixada, calcular a quantidade de páginas
  4. Fazer um loop para baixar todas as páginas (usando purrr)
  5. Fazer uma função para parsear uma página
  6. Fazer um loop para parsear todas as páginas

Qualquer coisa estamos aí :slight_smile:

3 Curtidas

Ei Julio, desculpa demora, fiquei por conta do projeto hoje nesse fim de semana.

eu cheguei a entender as funções no geral do que você está buscando com o xml e como está criando a lista para fazer , mas travei na hora do query do httr; e no item 4, do purrr, que ainda agarro…

Mas no geral a função deu certinha, consegui baixar aqui na minha máquina as moções de aplauso. Vocês são outro patamar!

Ansioso pelo curso!