Como salvar tabela de site como CSV
Um arquivo CSV é um texto simples que qualquer planilha e banco de dados consegue ler. Colocar uma tabela da web nele é fácil; o difícil é fazer isso sem acentos corrompidos, um separador errado ou zeros perdidos. Apresentamos quatro maneiras e onde cada uma falha.
1. Copiar, colar no Excel e depois Salvar Como
Selecione a tabela, copie-a, cole-a em uma planilha do Excel em branco, use o comando Salvar Como no menu Arquivo e escolha o tipo de arquivo CSV UTF-8.
Bom para: uma tabela pequena que você precisa uma única vez, quando já está com o Excel aberto.
Onde falha: se você escolher o tipo CSV normal em vez de CSV UTF-8, cada caractere fora da página de códigos do seu Windows (acentos, cirílico, chinês) vira uma interrogação. O Excel também grava o separador definido nas configurações regionais do seu Windows, então, em muitos sistemas europeus, o seu arquivo "separado por vírgulas" na verdade é separado por ponto e vírgula, e o programa que o lê pode esperar vírgulas. Colar também pode remover zeros à esquerda (um código como 01234 vira 1234) e transformar valores como 1-2 em datas, e a seleção pode capturar texto ao redor da tabela.
2. Planilhas Google: colar e depois fazer o download
Cole a tabela em um arquivo do Planilhas Google, abra o menu Arquivo, vá em Fazer o download e escolha o formato Valores separados por vírgula (.csv).
Bom para: qualquer computador com um navegador, sem precisar do Excel, e o arquivo é sempre UTF-8.
Onde falha: o arquivo sempre usa vírgulas, o que o Excel em uma região com vírgula decimal pode não separar em colunas quando você dá um clique duplo nele. Apenas a planilha que você está vendo é baixada, não o arquivo inteiro. Assim como o Excel, o Planilhas Google pode converter alguns valores em datas ou números durante a colagem.
3. Python: pandas.read_html
Se você já trabalha com Python, o pandas lê todas as tabelas de uma página e grava uma em CSV:
pandas.read_html("https://example.com/page")[0].to_csv("table.csv", index=False)
O número entre colchetes é a posição da tabela na página (0 para a primeira). Você precisa ter o pandas e o lxml instalados.
Bom para: a mesma página toda semana, ou centenas de páginas, em um script.
Onde falha: alguns sites recusam a solicitação com um erro 403 porque ela não se parece com um navegador, o que obriga você a baixar a página por conta própria e passar o HTML para o pandas. Ele não consegue ver páginas protegidas por login ou tabelas que o JavaScript renderiza depois que a página carrega. Marcas de notas de rodapé como [1] ficam nos cabeçalhos e valores, e números inteiros podem aparecer como 8021407192.0 assim que uma coluna tem uma célula vazia.
4. Uma extensão de navegador: um clique na página que você está lendo
Uma extensão funciona na página exatamente como você a vê no seu navegador, funcionando também após você fazer login e em tabelas construídas com JavaScript. Nós criamos uma, o Ordelio Copiar Tabelas (gratuito, sem limite de linhas):
- Abra a página e clique no ícone da extensão (ou pressione Alt+Shift+Y). Ela lista todas as tabelas da página, da maior para a menor; passe o mouse sobre uma delas e ela será destacada.
- Pressione CSV: o navegador salva um arquivo com essa tabela. Os acentos resistem porque o arquivo é UTF-8 com uma marca que avisa o Excel sobre isso, e o separador é um ponto e vírgula caso o seu idioma escreva decimais com vírgula (você pode forçar vírgula, ponto e vírgula ou tabulação nas opções).
A ferramenta também remove marcas de notas de rodapé como [1], repete células mescladas para que as colunas permaneçam alinhadas e grava códigos como 01234 no arquivo exatamente como estão na página (uma planilha que abre o arquivo ainda pode transformá-los em números).
Onde falha: ela salva o que está na página no momento, então uma tabela dividida em várias páginas exige um arquivo por página, e ela não consegue atualizar o arquivo sozinha como um script consegue.
Obter Ordelio Copiar Tabelas para o Microsoft Edge Versões para Chrome e Firefox: em análise.
Qual usar
| Excel Salvar Como | Planilhas Google | pandas | Extensão | |
|---|---|---|---|---|
| Páginas protegidas por login | Sim (copiando) | Sim (copiando) | Não | Sim |
| Acentos saem corretos | Apenas com CSV UTF-8 | Sim | Sim | Sim |
| Separador que você pode escolher | Não (definido pelo Windows) | Não (sempre vírgulas) | Sim (um parâmetro) | Sim (uma opção) |
| Centenas de páginas de uma vez | Não | Não | Sim | Não |
| Tempo para uma nova página | Cerca de um minuto | Cerca de um minuto | Minutos, na primeira vez | Alguns segundos |
Em suma: para um script que roda toda semana em páginas públicas, use o pandas. Para uma consulta única de uma página que você está lendo, especialmente atrás de uma tela de login, salve direto da página.
Encontrou uma tabela que nenhum desses métodos consegue manipular? Conte para nós, nós lemos todas as mensagens.