Pergunta

Eu codio muitos analisadores. Até agora, eu estava usando o navegador sem cabeça HTMLUnit para analisar e automação do navegador.

Agora, quero separar as duas tarefas.

Como 80% do meu trabalho envolve apenas analisar, quero usar um analisador HTML leve, porque leva muito tempo no htmlunit para primeiro carregar uma página, depois obter a fonte e depois analisá -la.

Eu quero saber qual analisador HTML é o melhor. O analisador seria melhor se estivesse próximo do analisador htmlunit.


EDITAR:

Por melhor, quero pelo menos os seguintes recursos:

  1. Velocidade
  2. Facilitar para localizar qualquer htmlelement por seu "id" ou "nome" ou "tipo de tag".

Seria bom para mim se não limpar o código HTML sujo. Não preciso limpar nenhuma fonte HTML. Eu só preciso de uma maneira mais fácil de passar por HTMLELEMENTS e colher dados deles.

Foi útil?

Solução

Auto -plug: Acabei de lançar um novo analisador Java HTML: JSUP. Eu mencionei aqui porque acho que fará o que você procura.

Seu truque de festa é uma sintaxe de seletor CSS para encontrar elementos, por exemplo:

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);
Elements links = doc.select("a");
Element head = doc.select("head").first();

Veja o Seletor javadoc para mais informações.

Este é um novo projeto, portanto, quaisquer idéias para melhorias são muito bem -vindas!

Outras dicas

O melhor que eu já vi até agora é Htmlcleaner:

Htmlcleaner é um analisador html de código aberto escrito em Java. O HTML encontrado na Web geralmente é sujo, mal formado e inadequado para processamento adicional. Para qualquer consumo sério de tais documentos, é necessário primeiro limpar a bagunça e trazer o pedido para tags, atributos e texto comum. Para o documento HTML fornecido, o HTMLCLEANER reordoma elementos individuais e produz XML bem formado. Por padrão, segue regras semelhantes que a maioria dos navegadores da Web usa para criar o modelo de objeto de documento. No entanto, o usuário pode fornecer tags e regras personalizados para filtragem e balanceamento de tags.

Com o htmlcleaner, você pode localizar qualquer elemento usando o XPath.

Para outros analisadores HTML, veja isso é tão pergunta.

Eu sugiro Validator.nu's Parser, com base no algoritmo de análise HTML5. É o analisador usado em Mozilla de 2010-05-03

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top