Ich kann keine gute Java-basierte Web-Scraping-API finden. Die Site, die ich kratzen muss, bietet auch keine API. Ich möchte mit einigen über alle Webseiten iterieren pageID
und die HTML-Titel / andere Dinge in ihren DOM-Bäumen extrahieren.
Gibt es andere Möglichkeiten als Web Scraping?
java
web-scraping
frameworks
NoneType
quelle
quelle
Am besten verwenden Sie den Selenium Web Driver
Bietet dem Codierer visuelles Feedback (sehen Sie Ihr Scraping in Aktion, sehen Sie, wo es aufhört)
Genau und konsistent, da es den von Ihnen verwendeten Browser direkt steuert.
Langsam. Schlägt keine Webseiten wie HtmlUnit, aber manchmal möchten Sie nicht zu schnell schlagen.
Htmlunit ist schnell, aber schrecklich im Umgang mit Javascript und AJAX.
quelle
HTMLUnit kann zum Web-Scraping verwendet werden. Es unterstützt das Aufrufen von Seiten sowie das Ausfüllen und Senden von Formularen. Ich habe dies in meinem Projekt verwendet. Es ist eine gute Java-Bibliothek für Web Scraping. Lesen Sie hier für mehr
quelle
Mechanisierung für Java wäre eine gute Lösung dafür, und wie Wadjy Essam erwähnte, verwendet es JSoup für das HMLT. mechanize ist ein schrittweiser HTTP / HTML-Client, der Navigation, Formularübermittlung und Seiten-Scraping unterstützt.
http://gistlabs.com/software/mechanize-for-java/ (und der GitHub hier https://github.com/GistLabs/mechanize )
quelle
Es gibt auch Jaunt Java Web Scraping und JSON Querying - http://jaunt-api.com
quelle
Sie könnten in jwht-Scrapper schauen !
Dies ist ein vollständiges Scrapping-Framework, das alle Funktionen bietet, die ein Entwickler von einem Web-Scrapper erwarten kann:
Es funktioniert mit (jwht-htmltopojo) [ https://github.com/whimtrip/jwht-htmltopojo ) lib, die itsef verwendet Jsoup, das von mehreren anderen Personen hier erwähnt wurde.
Zusammen helfen sie Ihnen dabei, großartige Scrapper zu erstellen, die HTML direkt POJOs zuordnen und alle klassischen Scrapper-Probleme in nur wenigen Minuten umgehen!
Hoffe das könnte einigen Leuten hier helfen!
Haftungsausschluss, ich bin derjenige, der es entwickelt hat, zögern Sie nicht, mir Ihre Bemerkungen mitzuteilen!
quelle
Schauen Sie sich einen HTML-Parser wie TagSoup, HTMLCleaner oder NekoHTML an.
quelle
Wenn Sie das Scraping großer Seiten- oder Datenmengen automatisieren möchten, können Sie Götz ETL ausprobieren .
Es ist vollständig modellgetrieben wie ein echtes ETL-Tool. Datenstruktur, Aufgabenworkflow und zu durchsuchende Seiten werden mit einer Reihe von XML-Definitionsdateien definiert, und es ist keine Codierung erforderlich. Die Abfrage kann entweder mit Selectors mit JSoup oder XPath mit HtmlUnit geschrieben werden.
quelle
Für Aufgaben dieses Typs verwende ich normalerweise Crawller4j + Jsoup.
Mit crawler4j lade ich die Seiten von einer Domain herunter, Sie können angeben, welche ULR mit einem regulären Ausdruck.
Mit jsoup habe ich die HTML-Daten "analysiert", nach denen Sie gesucht und mit crawler4j heruntergeladen haben.
Normalerweise können Sie Daten auch mit jsoup herunterladen, aber Crawler4J erleichtert das Auffinden von Links. Ein weiterer Vorteil der Verwendung von crawler4j besteht darin, dass es sich um Multithreading handelt und Sie die Anzahl der gleichzeitigen Threads konfigurieren können
https://github.com/yasserg/crawler4j/wiki
quelle
Normalerweise verwende ich Selen, eine Software zum Testen der Automatisierung. Sie können einen Browser über einen Web-Treiber steuern, sodass Sie keine Probleme mit Javascripts haben und es normalerweise nicht sehr erkannt wird, wenn Sie die Vollversion verwenden. Headless Browser können besser identifiziert werden.
quelle