Qual é a melhor maneira de extrair o conteúdo da tabela de um grupo de arquivos HTML?
Pergunta
Depois de limpar uma pasta cheia de arquivos HTML com o TIDY, como o conteúdo das tabelas pode ser extraído para processamento posterior?
Solução
Depende do tipo de processamento que você deseja fazer.Você pode dizer ao Tidy para gerar XHTML, que é um tipo de XML, o que significa que você pode usar todas as ferramentas XML usuais, como XSLT e XQuery, nos resultados.
Se quiser processá-los no Microsoft Excel, você poderá cortar a tabela do HTML e colocá-la em um arquivo e, em seguida, abrir esse arquivo no Excel:ele converterá com prazer uma tabela HTML em uma página de planilha.Você pode salvá-lo como CSV ou como uma pasta de trabalho do Excel, etc.(Você pode até usar isso em um servidor web - retorne uma tabela HTML, mas defina o Content-Type
cabeçalho para application/ms-vnd.excel
:O Excel abrirá e importará a tabela e a transformará em uma planilha.)
Se você deseja que o CSV alimente um banco de dados, você pode usar o Excel como antes, ou se quiser automatizar o processo, você pode escrever um programa que use a API de navegação XML de sua escolha para iterar as linhas da tabela e salve-os como CSV.Os módulos Elementtree e CSV do Python tornariam isso muito fácil.
Outras dicas
Eu usei o BeautifulSoup para essas coisas no passado com grande sucesso.
Depois de revisar as sugestões, acabei usando Unidade HTML.
Com o htmlunit, pude personalizar o código Java para abrir cada arquivo HTML na pasta, navegar até a tag de tabela, consultar cada conteúdo da coluna e extrair os dados necessários para criar um arquivo CSV.
No .NET você poderia usar HTMLAgilityPack.
Veja isso pergunta anterior no StackOverflow para obter mais informações.
Se quiser extrair o conteúdo da marcação HTML, você deve usar algum tipo de analisador HTML.Para esse fim, existem muitos por aí e aqui estão dois que podem atender às suas necessidades:
http://jtidy.sourceforge.net/
http://htmlparser.sourceforge.net/
itere pelo texto e use expressão regular :)