1
resposta

pd.read_html em tabelas que têm filtro

Bom dia,

estava estudando algumas possibilidades de extrair tabelas da internet para estudar e me veio uma dúvida: há alguma comando do pd.read_html que filtra os dados na fonte e puxa esse banco para o Notebook/Jupyter?

Por exemplo, no link https://www.ibge.gov.br/estatisticas/economicas/precos-e-custos/9256-indice-nacional-de-precos-ao-consumidor-amplo.html?edicao=30883&t=resultados, podemos consultar o ipca acumulado por mês. Vejam que há um filtro lateral para modificação dos meses de apuração desse indicador.

Então, se eu quiser puxar os dados de maio/2021, como eu faria? Ou melhor, isso é possível com o pandas?

Um abraço,

Alexandre

1 resposta

Boas Alexandre! Tudo bem? Espero que sim!

Perdoe a demora em responder.

Nesse caso, há algumas considerações que devemos pensar antes de realizar o scrapping de páginas.

De maneira geral, existem dois tipos de páginas:

Páginas Estáticas:

São as páginas nas quais o conteúdo não muda, há simplesmente um arquivo html/css/js que fornece as informações da página. O pandas trabalha muito bem fazendo a coleta desse tipo de página.

Páginas Dinâmicas

São páginas que constróem o conteúdo fazendo consultas à banco de dados, e outros arquivos. Dessa forma, com clicks nessa página, o conteúdo de altera a apartir de funções javascript.

Esse tipo de página é uma que representa uma dificuldade bastante grande para que o pandas faça a coleta. Portanto, não é indicado usar o pandas para fazê-la.

Ao invés disso, existem outras ferramentas como o Selenium, que emula um usuário para fazer a coleta das páginas.

Como nesse caso há a possibilidade de fazer o download dessas tabelas, também é um meio mais interessante.

Espero ter ajudado! Bons estudos!