Frage

Ich habe eine Menge von Parsern codieren. Bisher war ich mit Htmlunit Headless Browser für das Parsen und Browser-Automatisierung.

Jetzt möchte ich beide Aufgaben trennen.

80% meiner Arbeit beinhaltet nur das Parsen, ich mag ein Licht HTML-Parser verwenden, weil es in Htmlunit zum ersten Last einer Seite viel Zeit in Anspruch nimmt, dann die Quelle bekommt und dann analysieren.

Ich möchte wissen, welche HTML-Parser das Beste ist. Der Parser wäre besser, wenn es in der Nähe Htmlunit-Parser ist.


EDIT:

Mit dem besten, ich möchte zumindest die folgenden Funktionen:

  1. Geschwindigkeit
  2. Einfache jede lokalisieren Htmlelement durch seine "id" oder "Name" oder "Tag-Typ".

Es wäre für mich in Ordnung, wenn es nicht den schmutzigen HTML-Code nicht reinigen. Ich brauche keine HTML-Quelle zu reinigen. Ich brauche nur einen einfachste Weg, über HtmlElements und Erntedaten von ihnen zu bewegen.

War es hilfreich?

Lösung

Selbst Stecker: Ich habe gerade ein neues Java-HTML-Parser-Freigabe: jsoup . Ich erwähne es hier, weil ich denke, es wird tun, was Sie nach.

Die Partei Trick ist ein CSS-Selektor Syntaxelemente zu finden, z.

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();

Sehen Sie das Selector javadoc für weitere Informationen.

Dies ist ein neues Projekt, so dass alle Ideen für Verbesserungen sind sehr willkommen!

Andere Tipps

Das Beste, was ich bisher gesehen habe, ist HtmlCleaner :

  

HtmlCleaner ist Open-Source-HTML-Parser in Java geschrieben. HTML auf Web zu finden ist in der Regel schmutzig, schlecht ausgebildet und ungeeignet für die weitere Verarbeitung. Für jeden ernsthaften Verzehr solcher Dokumente ist es notwendig, die Verwirrung und bringen die um Tags, Attribute und normalen Text zum ersten aufzuräumen. Für das gegebene HTML-Dokument neu ordnet HtmlCleaner einzelne Elemente und produziert wohlgeformte XML. Standardmäßig folgt ähnliche Regeln, dass die meisten Web-Browser verwenden, um Document Object Model zu erstellen. Allerdings bietet Benutzer Tag benutzerdefinierte kann und Regelsatz für Tag Filterung und ausgleichend.

Mit HtmlCleaner Sie jedes Element finden können XPath verwenden.

Für andere HTML-Parser finden Sie unter href="https://stackoverflow.com/questions/2129375/html-xml-parser-for-java">.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top