Chcę zrobić skrobanie ekranu, najlepiej za pomocą selektorów CSS, a nie XPath. Czy istnieje biblioteka podobna do bibliotek w języku Ruby lub Python?Czy istnieje biblioteka podobna do biblioteki lxml lub nokogiri dla języka Java?
9
A
Odpowiedz
7
Istnieje biblioteka skanów ekranowych napisanych w Javie. Wystarczy przytoczyć kilka:
- TagSoup - parser SAX zgodny napisany w Javie, że zamiast parsowania dobrze uformowane i prawidłowy XML, analizuje HTML, gdyż znajduje się w dziko: nasty i brutalny, choć całkiem niezbyt często. TagSoup to Przeznaczony dla osób, które muszą wykonać przetwarzanie tego materiału przy użyciu pewnego projektu racjonalnego projektu. Dzięki udostępnieniu interfejsu SAX, , standardowe narzędzia XML mogą być zastosowane do nawet najgorszego HTML.
- Jericho HTML Parser - Jericho HTML Parser jest prosty, ale potężny java biblioteki umożliwiające analizę i manipulowanie częściami dokumentu HTML , w tym kilka wspólnych tagów po stronie serwera, a odtwarzając dosłownie każdą nierozpoznane lub nieprawidłowy HTML. Zapewnia również wysokopoziomowe funkcje obsługi formularzy HTML . t jest ani zdarzeniem ani parserem opartym na drzewie, ale używa kombinacji prostego wyszukiwania tekstu, wydajnego rozpoznawania znacznika i pamięci podręcznej pozycji znacznika. Tekst całego dokumentu źródłowego jest najpierw ładowany do pamięci, a następnie tylko odpowiednie segmenty przeszukane dla odpowiednich znaków każdej operacji wyszukiwania .
- HTML Cleaner - HtmlCleaner zmienia kolejność poszczególnych elementów, a tworzy dobrze sformułowany kod XML z brudnego kodu HTML . Stosuje się podobne zasady, które większość przeglądarek internetowych używa w celu utworzenia modelu obiektu dokumentu w celu uzyskania . Użytkownik może dostarczyć niestandardowy tag i regułę zestaw do filtrowania i równoważenia tagów.
- NekoHTML - NekoHTML jest prosty skaner tag HTML i balanser że umożliwia programistom do parse dokumentów HTML i dostęp do informacji przy użyciu standardu XML interfejsów. Analizator składni może skanować pliki HTML i "naprawiać" wiele typowych błędów, które ludzcy (i komputerowi) autorzy tworzą na piśmie HTML dokumentów. NekoHTML dodaje brakujące elementy rodzicielskie: ; automatycznie zamyka elementy za pomocą opcjonalnych znaczników końcowych; i może obsłużyć niedopasowane znaczniki wbudowanego elementu .
I wiele więcej na HTML Screen Scraping Tools written in Java. Ale to IMO najlepiej radzą sobie z każdym rodzajem treści (rozumiem wszelkiego rodzaju bzdury), o czym wspomniałem w this previous answer. Może to jednak nie być problemem dla Ciebie.
Na wszelki wypadek, może sprawdź wątek Nokogiri pure Java status.
Aktualizacja: Nowy projekt został zwolniona (2010-01-31) jsoup, który oferuje selector-syntax to find elements. Zobacz jego stronę internetową po więcej szczegółów i/lub this answer od swojego autora.
1
Możesz użyć hpricot przez jRuby. Aby uzyskać więcej informacji na ten temat, patrz: this SO question.