Resumo: A extração de tabelas JavaScript na Web em Python raramente requer um navegador sem interface gráfica. Abra o DevTools, localize o endpoint JSON que preenche a tabela, reproduza-o com requests, pagine-o e recorra ao Playwright apenas quando a chamada de rede for assinada, encriptada ou de outra forma bloqueada.Escreveu o código óbvio. requests.get(url), passa o HTML para o BeautifulSoup, extrai as linhas do <table>. O script é executado, o ficheiro é guardado no disco e o CSV está vazio. Bem-vindo à extração de tabelas JavaScript da Web, onde as linhas que vê no seu navegador não existem no documento que o servidor realmente devolveu.
As tabelas estáticas enviam os dados dentro do HTML inicial. As tabelas dinâmicas (também chamadas de tabelas AJAX ou renderizadas por JavaScript) enviam uma estrutura quase vazia; em seguida, um script na página chama um endpoint JSON e injeta linhas no DOM após o carregamento. Se não executar esse script, não verá essas linhas. Iniciar um navegador completo para resolver isto é uma resposta pesada para o que geralmente é um problema pequeno.
Este guia segue o caminho mais curto. Começaremos com uma árvore de decisão para que deixe de adivinhar se deve recorrer a requests ou um motor de navegador, e depois vamos percorrer o processo de encontrar o ponto de extremidade JSON subjacente no DevTools, reproduzi-lo em Python com paginação e autenticação, analisá-lo em linhas limpas e exportá-lo para CSV, JSON Lines ou SQLite. O Playwright está aqui como um verdadeiro recurso de emergência para sites que ocultam a chamada de rede, não como a ferramenta padrão. No final, terá um script que poderá executar novamente no próximo trimestre sem precisar de o reescrever do zero.




