Który Parser HTML jest najlepszy? [zamknięte]
Koduję wiele parserów. Do tej pory używałem HtmlUnit Headless browser do parsowania i automatyzacji przeglądarki.
Teraz chcę oddzielić oba zadania.
Ponieważ 80% mojej pracy wymaga tylko parsowania, chcę użyć lekkiego parsera HTML, ponieważ zajmuje dużo czasu w HtmlUnit, aby najpierw załadować stronę, a następnie uzyskać źródło, a następnie przeanalizować ją.
Chcę wiedzieć, który parser HTML jest najlepszy. Parser byłby lepszy, jeśli jest blisko HtmlUnit parser.
EDIT:
By best, I want conajmniej the following features:
- Speed
- łatwość lokalizowania dowolnego elementu HtmlElement według jego "id", "nazwa " lub"typ znacznika".
Byłoby dla mnie ok, gdyby nie wyczyścił brudnego kodu HTML. Nie muszę czyścić żadnego źródła HTML. Potrzebuję tylko najprostszego sposobu, aby przejść przez HtmlElements i pobierać z nich dane.
3 answers
Self plug: właśnie wydałem Nowy parser HTML Javy: jsoup . Wspominam o tym tutaj, bo myślę, że to zrobi to, co chcesz.
Jego party trick to składnia selektora CSS do znajdowania elementów, np.:
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();
Zobacz Selektor javadoc aby uzyskać więcej informacji.
Jest to nowy projekt, więc wszelkie pomysły na poprawę są bardzo mile widziane!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-04 13:48:23
Najlepsze jakie do tej pory widziałem to HtmlCleaner :
HtmlCleaner to otwarty parser HTML napisany w Javie. HTML znaleziony w sieci jest zwykle brudny, źle uformowany i nieodpowiedni do dalszego przetwarzania. W przypadku poważnego zużycia takich dokumentów konieczne jest najpierw posprzątanie bałaganu i uporządkowanie tagów, atrybutów i zwykłego tekstu. Dla danego dokumentu HTML, HtmlCleaner zmienia kolejność poszczególnych elementów i tworzy dobrze uformowany XML. Domyślnie następuje podobne reguły używane przez większość przeglądarek internetowych do tworzenia modelu obiektowego dokumentu. Jednak użytkownik może dostarczyć niestandardowy tag i zestaw reguł do filtrowania i równoważenia tagów.
Z HtmlCleaner można zlokalizować dowolny element za pomocą XPath.
Dla innych parserów html zobacz to pytanie .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:20
Proponuję Validator.nu parser, oparty na algorytmie parsowania HTML5. Jest to parser używany w Mozilli od 2010-05-03
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-13 16:42:44