Koduję wiele parserów. Do tej pory korzystałem z bezgłowej przeglądarki HtmlUnit do analizowania i automatyzacji przeglądarki.
Teraz chcę oddzielić oba zadania.
Ponieważ 80% mojej pracy polega na analizie, chcę użyć lekkiego parsera HTML, ponieważ najpierw zajmuje dużo czasu w HtmlUnit, aby załadować stronę, następnie pobrać źródło, a następnie parsować.
Chcę wiedzieć, który parser HTML jest najlepszy. Analizator składni byłby lepszy, gdyby był zbliżony do analizatora składni HtmlUnit.
EDYTOWAĆ:
Co najlepsze, chcę przynajmniej następujące funkcje:
- Prędkość
- Łatwo zlokalizuj dowolny element HTML za pomocą jego „id”, „name” lub „tag type”.
Byłoby dla mnie ok, jeśli nie wyczyści brudnego kodu HTML. Nie muszę czyścić żadnego źródła HTML. Potrzebuję tylko najprostszego sposobu na poruszanie się po elementach HTML i zbieranie z nich danych.
java
html
parsing
html-parsing
web-scraping
Yatendra Goel
źródło
źródło
Odpowiedzi:
Własna wtyczka: Właśnie wydałem nowy parser Java HTML: jsoup . Wspominam o tym tutaj, ponieważ myślę, że zrobi to, o co ci chodzi.
Jego sztuczką drużynową jest składnia selektora CSS do znajdowania elementów, np .:
Zobacz Selektor uzyskać więcej informacji, javadoc .
To nowy projekt, więc wszelkie pomysły na ulepszenia są bardzo mile widziane!
źródło
Najlepsze, jakie do tej pory widziałem, to HtmlCleaner :
Dzięki HtmlCleaner możesz zlokalizować dowolny element za pomocą XPath.
W przypadku innych parserów HTML zobacz to SO pytanie .
źródło
Similar rules that the most of web browsers use
- To nie jest zbyt przekonująceSugeruję parser Validator.nu , oparty na algorytmie analizującym HTML5. Jest to parser używany w Mozilli od 2010-05-03
źródło