Heim  >  Artikel  >  Java  >  19 Java-Open-Source-Webcrawler, die Sie beim Umgang mit Big Data unbedingt verwenden müssen

19 Java-Open-Source-Webcrawler, die Sie beim Umgang mit Big Data unbedingt verwenden müssen

黄舟
黄舟Original
2017-01-18 15:20:141765Durchsuche

Java-Programmiersprache

Java ist eine objektorientierte Programmiersprache, die plattformübergreifende Anwendungssoftware schreiben kann. Sie wurde im Mai 1995 von Sun Microsystems eingeführt. Der allgemeine Begriff für Programmierung Sprachen und Java-Plattformen (d. h. JavaEE (j2ee), JavaME (j2me), JavaSE (j2se)).


Webcrawler (in der FOAF-Community auch als Web-Spider, Web-Roboter und häufiger als Web-Chaser bekannt) sind eine Art Web-Crawler, der bestimmten Regeln folgt, z Programm oder Skript, das automatisch Informationen aus dem World Wide Web crawlt. Andere, weniger häufig verwendete Namen sind Ameisen, Autoindexer, Emulatoren oder Würmer.

Heute stelle ich Ihnen 19 Java-Open-Source-Webcrawler vor. Freunde, die sie brauchen, können sie schnell sammeln.

19 Java-Open-Source-Webcrawler, die Sie beim Umgang mit Big Data unbedingt verwenden müssen

1. Heritrix

Heritrix ist ein von Java entwickelter Open-Source-Webcrawler, mit dem Benutzer die gewünschten Ressourcen aus dem Internet crawlen können . . Das beste Merkmal ist die gute Skalierbarkeit, die es Benutzern erleichtert, ihre eigene Crawling-Logik zu implementieren.

Heritrix ist ein „Archival Crawler“ – um eine vollständige, genaue und tiefe Kopie des Inhalts Ihrer Website zu erhalten. Dazu gehört die Aufnahme von Bildern und anderen Nicht-Text-Inhalten. Crawlen und speichern Sie relevante Inhalte. Der Inhalt wird nicht abgelehnt und der Inhalt der Seite wird nicht geändert. Das erneute Crawlen derselben URL ersetzt nicht die vorherige. Der Crawler wird hauptsächlich über eine Web-Benutzeroberfläche gestartet, überwacht und angepasst, was eine flexible Definition der abzurufenden URLs ermöglicht.

Heritrix ist ein Multithread-Crawler. Der Hauptthread weist Teo-Threads (Verarbeitungsthreads) Aufgaben zu, und jeder Teo-Thread verarbeitet jeweils eine URL. Der Teo-Thread führt die URL-Prozessorkette einmal für jede URL aus. Die URL-Prozessorkette umfasst die folgenden fünf Verarbeitungsschritte.

(1) Prefetch-Kette: Hauptsächlich einige Vorbereitungsarbeiten ausführen, z. B. Verzögerung und erneute Verarbeitung sowie Veto gegen nachfolgende Vorgänge.

(2) Extraktionskette: Hauptsächlich Webseiten herunterladen, DNS-Konvertierung durchführen und Anforderungs- und Antwortformulare ausfüllen.

(3) Extraktionskette: Wenn die Extraktion abgeschlossen ist, extrahieren Sie das gewünschte HTML und JavaScript. Normalerweise müssen neue URLs gecrawlt werden.

(4) Link schreiben: Speichern Sie die Crawl-Ergebnisse, und Sie können in diesem Schritt direkt eine Volltextindizierung durchführen. Heritrix bietet eine ARCWriterProcessor-Implementierung, die Download-Ergebnisse im ARC-Format speichert.

(5) Übermittlungskette: Führen Sie die endgültige Verarbeitung der Vorgänge im Zusammenhang mit dieser URL durch. Überprüfen Sie, welche neu extrahierten URLs im Crawling-Bereich liegen, und übermitteln Sie diese URLs dann an Frontier. Die DNS-Cache-Informationen werden ebenfalls aktualisiert.


19 Java-Open-Source-Webcrawler, die Sie beim Umgang mit Big Data unbedingt verwenden müssen

Heritrix-Systemrahmendiagramm

19 Java-Open-Source-Webcrawler, die Sie beim Umgang mit Big Data unbedingt verwenden müssen

Der Prozess der Heritrix-Verarbeitung einer URL

2. WebSPHINX

WebSPHINX ist eine interaktive Entwicklungsumgebung für Java-Klassenpakete und Webcrawler. Webcrawler (auch Robots oder Spider genannt) sind Programme, die Webseiten automatisch durchsuchen und verarbeiten. WebSPHINX besteht aus zwei Teilen: der Crawler-Arbeitsplattform und dem WebSPHINX-Klassenpaket.

WebSPHINX ist eine interaktive Entwicklungsumgebung für Java-Klassenpakete und Webcrawler. Webcrawler (auch Robots oder Spider genannt) sind Programme, die Webseiten automatisch durchsuchen und verarbeiten. WebSPHINX besteht aus zwei Teilen: der Crawler-Arbeitsplattform und dem WebSPHINX-Klassenpaket.

WebSPHINX – Zweck

1. Eine Sammlung von Seiten visuell anzeigen

2. Seiten auf die lokale Festplatte herunterladen, um sie offline zu durchsuchen

3 Zusammenfügen zu einer einzelnen Seite zum Durchsuchen oder Drucken

4. Extrahieren Sie Textzeichenfolgen aus der Seite gemäß bestimmten Regeln

5. Verwenden Sie Java oder Javascript, um einen benutzerdefinierten Crawler zu entwickeln

Eine ausführliche Einführung finden Sie>>>

3. WebLech

WebLech ist ein leistungsstarkes Tool zum Herunterladen und Spiegeln von Websites. Es unterstützt das Herunterladen von Websites basierend auf funktionalen Anforderungen und ahmt das Verhalten von Standard-Webbrowsern so genau wie möglich nach. WebLech verfügt über eine funktionale Konsole und verwendet Multithread-Betrieb.

WebLech ist ein leistungsstarkes kostenloses Open-Source-Tool zum Herunterladen und Spiegeln von Websites. Es unterstützt das Herunterladen von Websites basierend auf funktionalen Anforderungen und ahmt das Verhalten von Standard-Webbrowsern so genau wie möglich nach. WebLech verfügt über eine funktionale Konsole und verwendet Multithread-Betrieb.

Dieser Crawler ist einfach genug. Wenn Sie Anfänger sind und einen Crawler schreiben möchten, kann er als Einführungsreferenz verwendet werden. Deshalb habe ich beschlossen, meine Recherche mit diesem Crawler zu beginnen. Wenn Sie nur Anwendungen mit geringer Nachfrage ausführen, können Sie es auch versuchen. Wenn Sie ein leistungsstarkes Tool suchen, verschwenden Sie Ihre Zeit nicht mit WebLech.

Die Projekthomepage: http://weblech.sourceforge.net/

Features:

1) Open Source, kostenlos

2) Der Code ist in reinem Java geschrieben und kann auf jeder Plattform verwendet werden, die Java unterstützt

3) Unterstützt Multithread-Download von Webseiten

4) Kann Linkinformationen zwischen Webseiten verwalten

5 ) Hochgradig konfigurierbar: Webseiten, die zuerst in der Tiefe oder in der Breite gecrawlt werden, können mit URL-Filtern angepasst werden, sodass ein einzelner Webserver nach Bedarf gecrawlt werden kann, ein einzelnes Verzeichnis oder das gesamte WWW-Netzwerk gecrawlt werden kann Die Priorität der URL kann festgelegt werden, sodass unsere Sinne zuerst gecrawlt werden können. Interessante oder wichtige Webseiten können den Status des Programms am Haltepunkt aufzeichnen und beim Neustart vom letzten Mal an weiter gecrawlt werden.

4. Arale

Arale ist hauptsächlich für den persönlichen Gebrauch konzipiert und konzentriert sich nicht wie andere Crawler auf die Seitenindizierung. Arale ist in der Lage, ganze Websites oder bestimmte Ressourcen von Websites herunterzuladen. Arale kann dynamische Seiten auch in statische Seiten abbilden.

5. JSpider

JSpider: Es handelt sich um eine vollständig konfigurierbare und anpassbare Web-Spider-Engine. Sie können damit Website-Fehler (interne Serverfehler usw.) sowie interne und externe Links überprüfen Überprüfen und analysieren Sie die Struktur der Website (können Sie eine Sitemap erstellen), laden Sie die gesamte Website herunter und schreiben Sie ein JSpider-Plug-In, um die von Ihnen benötigten Funktionen zu erweitern.

Spider ist ein in Java implementierter WebSpider. Das Ausführungsformat von JSpider ist wie folgt:

jspider [URL] [ConfigName]

URL muss mit dem Protokollnamen hinzugefügt werden , wie zum Beispiel: http://, andernfalls wird ein Fehler gemeldet. Wenn ConfigName weggelassen wird, wird die Standardkonfiguration verwendet.

Das Verhalten von JSpider wird speziell durch die Konfigurationsdatei konfiguriert. Beispielsweise wird im Verzeichnis conf[ConfigName] festgelegt, welche Plug-Ins verwendet werden, wie die Ergebnisse gespeichert werden. Es gibt nur sehr wenige Standardkonfigurationstypen von JSpider, die wenig Nutzen bringen. Allerdings ist JSpider sehr einfach zu erweitern und Sie können damit leistungsstarke Web-Crawling- und Datenanalyse-Tools entwickeln. Dazu müssen Sie die Prinzipien von JSpider genau kennen, dann Plug-Ins entwickeln und Konfigurationsdateien entsprechend Ihren eigenen Anforderungen schreiben.

Spider ist:

Ein hochgradig konfigurierbarer und anpassbarer Webcrawler

Entwickelt unter der LGPL-Open-Source-Lizenz

100 % reine Java-Implementierung

Sie können damit:

Ihre Website auf Fehler überprüfen (interne Serverfehler, …)

Ausgehende oder interne Linkprüfung

Die Struktur Ihrer Website analysieren ( Erstellen Sie eine Sitemap, …)

Laden Sie die Renovierungswebsite herunter

Erreichen Sie jede Funktion, indem Sie das JSpider-Plug-in schreiben.

Die Projekthomepage: http://j-spider. sourceforge.net/

6. Spindel

Spindel ist ein Web-Indizierungs-/Suchtool, das auf dem Lucene-Toolkit basiert. Es enthält einen HTTP-Spider zum Erstellen von Indizes und einen HTTP-Spider zum Durchsuchen dieser Suchklasse für den Index. Das Spindelprojekt stellt eine Reihe von JSP-Tag-Bibliotheken bereit, die es JSP-basierten Websites ermöglichen, Suchfunktionen hinzuzufügen, ohne Java-Klassen zu entwickeln.

7. Arachnid

Arachnid ist ein Java-basiertes Web-Spider-Framework. Es enthält einen einfachen HTML-Parser, der den Eingabestrom mit HTML-Inhalten analysieren kann Entwickeln Sie einen einfachen Web-Spider und fügen Sie ein paar Codezeilen hinzu, die aufgerufen werden, nachdem jede Seite der Website analysiert wurde. Das Arachnid-Downloadpaket enthält zwei Spider-Anwendungsbeispiele, um die Verwendung des Frameworks zu veranschaulichen.

Die Projekthomepage: http://arachnid.sourceforge.net/

8. LARM

LARM kann ein reines Java für Benutzer des Jakarta Lucene-Suchmaschinen-Frameworks bereitstellen Suche nach Lösungen. Es enthält Methoden zum Indizieren von Dateien, Datenbanktabellen und Crawler zum Indizieren von Websites.

Die Projekthomepage: http://larm.sourceforge.net/

9. JoBo

JoBo ist ein einfaches Tool zum Herunterladen ganzer Websites. Es handelt sich im Wesentlichen um eine Webspinne. Im Vergleich zu anderen Download-Tools liegen seine Hauptvorteile in der Fähigkeit, Formulare automatisch auszufüllen (z. B. automatische Anmeldung) und Cookies zur Sitzungsabwicklung zu verwenden. JoBo verfügt außerdem über flexible Download-Regeln (z. B. Beschränkung von Downloads nach Webseiten-URL, Größe, MIME-Typ usw.).

10. snoics-reptile

1. Was ist snoics-reptile?

Es ist ein Tool zum Erfassen von Website-Bildern Der in der Konfigurationsdatei bereitgestellte URL-Eintrag erfasst alle Ressourcen dieser Website, die über den Browser über GET abgerufen werden können, einschließlich Webseiten und verschiedener Dateitypen, z. B. Bilder, Flash, MP3, Zip, Rar, Exe usw andere Dateien. Die gesamte Website kann vollständig auf die Festplatte heruntergeladen werden und die ursprüngliche Website-Struktur kann genau und unverändert beibehalten werden. Sie müssen lediglich die erfasste Website auf einem Webserver (z. B. Apache) ablegen, um eine vollständige Website-Spiegelung zu erreichen.

2. Warum müssen wir snoics-reptile entwickeln, da es jetzt andere ähnliche Software gibt? JavaScript kann nicht korrekt analysiert werden, und snoics-reptile stellt externe Schnittstellen und Konfigurationsdateien bereit. Es kann die extern bereitgestellten Schnittstellen frei erweitern und Konfigurationsdateien einfügen. Im Grunde kann es eine korrekte Analyse und das Crawlen aller Webseiten erreichen.

Die Projekthomepage: http://www.blogjava.net/snoics

11. Web-Harvest

Web-Harvest ist ein Java-Open-Source-Webdatenextraktionstool . Es ist in der Lage, bestimmte Webseiten zu sammeln und nützliche Daten aus diesen Seiten zu extrahieren. Web-Harvest verwendet hauptsächlich Technologien wie XSLT, XQuery, reguläre Ausdrücke usw., um Text-/XML-Operationen zu implementieren.

Web-Harvest ist ein in Java geschriebenes Open-Source-Tool zur Webdatenextraktion. Es bietet eine Möglichkeit, nützliche Daten aus der gewünschten Seite zu extrahieren. Um dieses Ziel zu erreichen, müssen Sie möglicherweise verwandte Technologien wie XSLT, XQuery und reguläre Ausdrücke verwenden, um Text/XML zu bearbeiten. Web-Harvest konzentriert sich hauptsächlich auf HMLT/XML-basierte Seiteninhalte, die immer noch den Großteil ausmachen. Andererseits kann es seine Extraktionsfähigkeiten leicht erweitern, indem es eigene Java-Methoden schreibt.

Der Hauptzweck von Web-Harvest besteht darin, die Anwendung bestehender Datenextraktionstechnologien zu verbessern. Ziel ist es nicht, eine neue Methode zu entwickeln, sondern eine bessere Möglichkeit zur Nutzung und Kombination vorhandener Methoden bereitzustellen. Es stellt eine Reihe von Prozessoren zur Datenverarbeitung und Steuerung des Datenflusses bereit. Jeder Prozessor wird als Funktion betrachtet, die über Parameter verfügt und nach der Ausführung Ergebnisse zurückgibt. Darüber hinaus wird die Verarbeitung in einer Pipeline zusammengefasst, sodass sie in verketteter Form ausgeführt werden kann. Darüber hinaus bietet Web-Harvest zur einfacheren Datenbearbeitung und Wiederverwendung auch variable obere und untere Schichten zum Speichern deklarierter Variablen.

Um Web-Harvest zu starten, können Sie direkt auf das auszuführende JAR-Paket doppelklicken. Diese Methode kann jedoch nicht die Größe der virtuellen Web-Harvest-Maschine angeben. Die zweite Methode besteht darin, unter cmd in das Web-Harvest-Verzeichnis zu gehen und den Befehl „java -jar -Xms400m webharvest_all_2.jar“ einzugeben, um die Größe der Java Virtual Machine zu starten und auf 400 MB festzulegen.

Die Projekthomepage: http://web-harvest.sourceforge.net

12. ItSucks

ItSucks ist ein Java-Webcrawler-Open-Source-Projekt. Es ist flexibel anpassbar und unterstützt die Definition von Download-Regeln durch Download-Vorlagen und reguläre Ausdrücke. Bietet eine Konsole und eine Swing-GUI-Bedienoberfläche.

Funktionen:

Multi-Threading

Reguläre Ausdrücke

Download-Jobs speichern/laden

Online-Hilfe

HTTP/HTTPS-Unterstützung

HTTP-Proxy-Unterstützung

HTTP-Authentifizierung

Cookie-Unterstützung

Konfigurierbarer Benutzeragent

Verbindungsbeschränkung

Konfigurieren des Verhaltens von HTTP-Antwortcodes

Bandbreitenbeschränkung

Gzip-Komprimierung

Die Projekthomepage: http://itsucks.sourceforge.net/

13. Intelligenter und einfacher Webcrawler

Smart and Simple Web Crawler ist ein Webcrawler-Framework. Integrierte Lucene-Unterstützung. Der Crawler kann von einem einzelnen Link oder einer Reihe von Links ausgehen und bietet zwei Durchlaufmodi: maximale Iteration und maximale Tiefe. Sie können Filter festlegen, um gecrawlte Links einzuschränken: ServerFilter, BeginningPathFilter und RegularExpressionFilter. Diese drei Filter können mit AND, OR und NOT kombiniert werden. Listener können vor und nach dem Parsing-Vorgang oder dem Laden der Seite hinzugefügt werden.

14. Crawler4j

crawler4j ist ein in Java implementierter Open-Source-Webcrawler. Bietet eine einfache und benutzerfreundliche Oberfläche zum Erstellen eines Multithread-Webcrawlers in wenigen Minuten.

Die Verwendung von crawler4j ist hauptsächlich in zwei Schritte unterteilt:

Implementierung einer von WebCrawler geerbten Crawler-Klasse;

Crawler-Klasse, die durch Aufruf von CrawlController implementiert wird.

WebCrawler ist eine abstrakte Klasse. Wenn Sie sie erben, müssen Sie zwei Methoden implementieren: ShouldVisit und Visit. Darunter:

shouldVisit dient dazu, zu bestimmen, ob die aktuelle URL gecrawlt (besucht) werden soll;

visit dient dazu, die Daten der Seite, auf die die URL verweist, und die übergebenen Parameter zu crawlen sind Es ist die Kapselungsobjektseite für alle Daten der Webseite.

Darüber hinaus verfügt WebCrawler über andere Methoden, die überschrieben werden können, und die Benennungsregeln seiner Methoden ähneln den Benennungsregeln von Android. Beispielsweise kann die Methode „getMyLocalData“ die Daten im WebCrawler zurückgeben; die Methode „onBeforeExit“ wird aufgerufen, bevor der WebCrawler endet, und kann einige Arbeiten wie die Ressourcenfreigabe ausführen.

Lizenz

Copyright (c) 2010-2015 Yasser Ganjisaffar

Veröffentlicht unter der Apache-Lizenz 2.0

Open-Source-Adresse: https://github. com/ yasserg/crawler4j

15. Ex-Crawler

Ex-Crawler ist ein in Java entwickelter Webcrawler. Der eine ist der Daemon-Prozess und der andere ist ein flexibler und konfigurierbarer Webcrawler. Verwenden Sie eine Datenbank zum Speichern von Webseiteninformationen.

Ex-Crawler ist in drei Teile unterteilt (Crawler-Daemon, Gui-Client und Web-Suchmaschine). Die Kombination dieser drei Teile wird zu einem flexiblen und leistungsstarken Crawler und einer Suchmaschine. Der Web-Suchmaschinenteil wird mit PHP entwickelt und beinhaltet ein Content-Management-System (CMS) zur Pflege der Suchmaschine.

Die Projekthomepage: http://ex-crawler.sourceforge.net/joomla/

16.Crawler

Crawler ist ein einfacher Webcrawler. Dadurch können Sie das Schreiben langweiligen, fehleranfälligen Codes vermeiden und sich nur auf die Struktur der Website konzentrieren, die Sie crawlen müssen. Außerdem ist es sehr einfach zu bedienen.

Die Projekthomepage: http://projetos.vidageek.net/crawler/crawler/

Seventeen, Encog

Encog ist ein fortschrittliches neuronales Netzwerk und eine Roboter-/Crawler-Entwicklung Klassenbibliothek. Die beiden von Encog bereitgestellten Funktionen können separat zum Erstellen neuronaler Netze oder HTTP-Robots verwendet werden, und Encog unterstützt auch die kombinierte Verwendung dieser beiden erweiterten Funktionen. Encog unterstützt die Erstellung von Feedforward-Neuronalen Netzen, Hopfield-Neuronalen Netzen und selbstorganisierenden Graphen.

Encog bietet erweiterte HTTP-Roboter-/Crawler-Programmierfunktionen. Unterstützt das Speichern von Inhalten, die von Multithread-Crawlern generiert wurden, im Speicher oder in der Datenbank. Unterstützt HTM-Parsing und erweiterte Formular- und Cookie-Verarbeitung.

Encog ist ein fortschrittliches Framework für maschinelles Lernen, das eine Vielzahl fortschrittlicher Algorithmen sowie Unterstützung für die Klassennormalisierung und Datenverarbeitung unterstützt. Unterstützt werden maschinelle Lernalgorithmen wie Support-Vektor-Maschinen, künstliche neuronale Netze, genetische Programmierung, Bayesianische Netze, Hidden-Markov-Modelle, genetische Programmierung und genetische Algorithmen. Die meisten Encog-Trainingsalgorithmen sind Multi-Threaded und lassen sich gut auf Multi-Core-Hardware skalieren. Encog kann auch eine GPU verwenden, um die Verarbeitungszeiten weiter zu beschleunigen. Außerdem steht eine GUI-basierte Workbench zur Verfügung, die beim Modellieren und Trainieren von Algorithmen für maschinelles Lernen hilft. Encog wird seit 2008 aktiv weiterentwickelt.

Encog unterstützt mehrere Sprachen, einschließlich C# Java und C

Es gibt Quellcodes in verschiedenen Sprachen auf GitHub.

http://www.heatonresearch.com/encog

https://github.com/encog

18. Crawljax

Crawljax ist ein Open-Source-Java-Tool für automatisiertes Scraping und Testen von Ajax-Webanwendungen. Crawljax ist in der Lage, jede Ajax-basierte Webanwendung zu crawlen/crawlen, indem es Ereignisse auslöst und Daten in Formulare einträgt.

Aufnahmezeit: 2011-05-18 09:50:32

Die Projekthomepage: http://crawljax.com/

Open-Source-Adresse: https:/ / github.com/crawljax/crawljax


Das Obige ist der Inhalt von 19 Java-Open-Source-Webcrawlern, die beim Spielen mit Big Data verwendet werden müssen. Bitte achten Sie auf die chinesische PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn