Langage de programmation Java
Java est un langage de programmation orienté objet qui peut écrire des logiciels d'application multiplateformes. Il a été lancé par Sun Microsystems en mai 1995. Terme général désignant la programmation. langages et plates-formes Java (c'est-à-dire JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)).
Les robots d'exploration Web (également connus sous le nom d'araignées Web, de robots Web et plus souvent appelés chasseurs de sites Web dans la communauté FOAF) sont un type de robot d'exploration Web qui suit certaines règles, un programme ou script qui analyse automatiquement les informations du World Wide Web. D'autres noms moins couramment utilisés incluent les fourmis, les indexeurs automatiques, les émulateurs ou les vers.
Aujourd'hui, je vais vous présenter 19 robots d'exploration Web open source Java. Les amis qui en ont besoin peuvent les récupérer rapidement.
1. Heritrix
Heritrix est un robot d'exploration Web open source développé par Java. Les utilisateurs peuvent l'utiliser pour explorer les ressources qu'ils souhaitent à partir d'Internet. . Sa meilleure caractéristique est sa bonne évolutivité, ce qui permet aux utilisateurs de mettre en œuvre facilement leur propre logique d'exploration.
Heritrix est un "Archival Crawler" - pour obtenir une copie complète, précise et approfondie du contenu de votre site. Cela inclut la capture d'images et d'autres contenus non textuels. Explorez et stockez le contenu pertinent. Le contenu ne sera pas rejeté et le contenu de la page ne sera pas modifié. Réexplorer la même URL ne remplace pas la précédente. Le robot d'exploration est lancé, surveillé et ajusté principalement via une interface utilisateur Web, ce qui permet une flexibilité dans la définition des URL à récupérer.
Heritrix est un robot qui explore de manière multithread. Le thread principal alloue des tâches aux threads Teo (threads de traitement), et chaque thread Teo traite une URL à la fois. Le thread Teo exécute la chaîne de processeur d'URL une fois pour chaque URL. La chaîne de traitement d'URL comprend les 5 étapes de traitement suivantes.
(1) Chaîne de prélecture : effectuer principalement un travail de préparation, tel que retarder et retraiter, et opposer son veto aux opérations ultérieures.
(2) Chaîne d'extraction : principalement télécharger des pages Web, effectuer une conversion DNS et remplir des formulaires de demande et de réponse.
(3) Chaîne d'extraction : lorsque l'extraction est terminée, extrayez le HTML et le JavaScript qui vous intéressent, il y a généralement de nouvelles URL à explorer.
(4) Écrire le lien : stockez les résultats de l'analyse et vous pouvez directement effectuer une indexation en texte intégral dans cette étape. Heritrix fournit une implémentation d'ARCWriterProcessor qui enregistre les résultats du téléchargement au format ARC.
(5) Chaîne de soumission : Effectuer le traitement final des opérations liées à cette URL. Vérifiez quelles URL nouvellement extraites se trouvent dans la plage d'exploration, puis soumettez ces URL à Frontier. Les informations du cache DNS seront également mises à jour.
Diagramme du cadre du système Heritrix
Le processus de traitement d'une URL par Heritrix
2. WebSPHINX
WebSPHINX est un environnement de développement interactif pour les packages de classes Java et les robots d'exploration Web. Les robots d'exploration Web (également appelés robots ou araignées) sont des programmes qui parcourent et traitent automatiquement les pages Web. WebSPHINX se compose de deux parties : la plate-forme de travail du robot et le package de classe WebSPHINX.
WebSPHINX est un environnement de développement interactif pour les packages de classes Java et les robots d'exploration Web. Les robots d'exploration Web (également appelés robots ou araignées) sont des programmes qui parcourent et traitent automatiquement les pages Web. WebSPHINX se compose de deux parties : la plate-forme de travail du robot et le package de classe WebSPHINX.
WebSPHINX – Objectif
1. Afficher visuellement une collection de pages
2. Télécharger des pages sur le disque local pour une navigation hors ligne
3. Fusionner en une seule page pour la navigation ou l'impression
4. Extrayez les chaînes de texte de la page selon des règles spécifiques
5 Utilisez Java ou Javascript pour développer un robot d'exploration personnalisé
. Une introduction détaillée peut être trouvée>>>
3 WebLech
WebLech est un puissant outil de téléchargement et de mise en miroir de sites Web. Il prend en charge le téléchargement de sites Web en fonction des exigences fonctionnelles et imite le plus fidèlement possible le comportement des navigateurs Web standard. WebLech dispose d'une console fonctionnelle et utilise un fonctionnement multithread.
WebLech est un puissant outil gratuit et open source pour télécharger et mettre en miroir des sites Web. Il prend en charge le téléchargement de sites Web en fonction des exigences fonctionnelles et imite le plus fidèlement possible le comportement des navigateurs Web standard. WebLech dispose d'une console fonctionnelle et utilise un fonctionnement multithread.
Ce robot d'exploration est assez simple. Si vous êtes débutant et souhaitez écrire un robot d'exploration, il peut être utilisé comme référence d'introduction. J'ai donc choisi de commencer mes recherches avec ce robot. Si vous n'utilisez que des applications peu demandées, vous pouvez également l'essayer. Si vous souhaitez trouver un outil puissant, ne perdez pas votre temps sur WebLech.
La page d'accueil du projet : http://weblech.sourceforge.net/
Caractéristiques :
1) Open source, gratuit
2) Le code est écrit en Java pur, il peut être utilisé sur n'importe quelle plate-forme prenant en charge Java
3) Prend en charge le téléchargement multithread de pages Web
4) Peut conserver les informations de lien entre les pages Web
5) Hautement configurable : les pages Web d'exploration en profondeur ou en largeur peuvent être personnalisées avec des filtres d'URL, de sorte qu'un seul serveur Web puisse être exploré selon les besoins, qu'un seul répertoire ou l'ensemble du réseau WWW puisse être exploré, le La priorité de l'URL peut être définie, de sorte que nos sens puissent être explorés en premier. Les pages Web intéressantes ou importantes peuvent enregistrer l'état du programme au point d'arrêt et peuvent continuer l'exploration depuis la dernière fois lors du redémarrage.
4. Arale
Arale est principalement conçu pour un usage personnel et ne se concentre pas sur l'indexation des pages comme les autres robots. Arale est capable de télécharger des sites Web entiers ou certaines ressources de sites Web. Arale peut également mapper des pages dynamiques vers des pages statiques.
5. JSpider
JSpider : Il s'agit d'un moteur Web Spider entièrement configurable et personnalisable. Vous pouvez l'utiliser pour vérifier les erreurs du site Web (erreurs internes du serveur, etc.), les liens internes et externes sur. le site Web Vérifiez et analysez la structure du site Web (vous pouvez créer un plan du site), téléchargez l'intégralité du site Web et vous pouvez également écrire un plug-in JSpider pour étendre les fonctions dont vous avez besoin.
Spider est un WebSpider implémenté en Java. Le format d'exécution de JSpider est le suivant :
jspider [URL] [ConfigName]
L'URL doit être ajoutée avec le nom du protocole. , tel que : http://, sinon une erreur sera signalée. Si ConfigName est omis, la configuration par défaut est utilisée.
Le comportement de JSpider est spécifiquement configuré par le fichier de configuration. Par exemple, quels plug-ins sont utilisés, comment les résultats sont stockés, etc. sont tous définis dans le répertoire conf[ConfigName]. Les types de configuration par défaut de JSpider sont très peu nombreux et peu utiles. Cependant, JSpider est très facile à étendre et vous pouvez l'utiliser pour développer de puissants outils d'exploration Web et d'analyse de données. Pour ce faire, vous devez avoir une compréhension approfondie des principes de JSpider, puis développer des plug-ins et écrire des fichiers de configuration selon vos propres besoins.
Spider est :
Un robot d'exploration Web hautement configurable et personnalisable
Développé sous la licence open source LGPL
Implémentation Java 100 % pure
Vous pouvez l'utiliser pour :
Vérifier les erreurs de votre site (erreurs internes du serveur, …)
Vérifier les liens sortants ou internes
Analyser la structure de votre site ( Créez un plan du site, …)
Téléchargez le site Web de rénovation
Réalisez n'importe quelle fonction en écrivant le plug-in JSpider.
La page d'accueil du projet : http://j-spider. sourceforge.net/
6. Spindle
Spindle est un outil d'indexation/de recherche Web construit sur la boîte à outils Lucene. Il comprend un robot HTTP pour créer des index et un robot HTTP pour rechercher ces classes de recherche. pour l'indice. Le projet Spindle fournit un ensemble de bibliothèques de balises JSP qui permettent aux sites basés sur JSP d'ajouter des fonctionnalités de recherche sans développer de classes Java.
7. Arachnid
Arachnid est un framework d'araignée Web basé sur Java. Il contient un simple analyseur HTML qui peut analyser le flux d'entrée contenant du contenu HTML. Développez une simple araignée Web et ajoutez quelques lignes de code à appeler après l'analyse de chaque page du site Web. Le package de téléchargement Arachnid contient deux exemples d’applications Spider pour montrer comment utiliser le framework.
La page d'accueil du projet : http://arachnid.sourceforge.net/
8 LARM
LARM peut fournir un Java pur aux utilisateurs du framework de moteur de recherche Jakarta Lucene. Rechercher des solutions. Il contient des méthodes d'indexation de fichiers, de tables de base de données et de robots d'indexation de sites Web.
La page d'accueil du projet : http://larm.sourceforge.net/
9. JoBo
JoBo est un outil simple pour télécharger des sites Web entiers. Il s'agit essentiellement d'un Web Spider. Par rapport à d'autres outils de téléchargement, ses principaux avantages sont sa capacité à remplir automatiquement des formulaires (comme la connexion automatique) et à utiliser des cookies pour gérer les sessions. JoBo dispose également de règles de téléchargement flexibles (telles que : limiter les téléchargements par URL de page Web, taille, type MIME, etc.).
10. snoics-reptile
1. Qu'est-ce que snoics-reptile ?
Il est développé en Java pur et est un outil utilisé pour capturer des images de sites Web. L'entrée URL fournie dans le fichier de configuration capturera toutes les ressources de ce site Web qui peuvent être obtenues via le navigateur via GET vers la zone locale, y compris les pages Web et divers types de fichiers, tels que : images, flash, mp3, zip, rar, exe et autres fichiers. L'intégralité du site Web peut être téléchargée entièrement sur le disque dur et la structure originale du site Web peut rester précise et inchangée. Il vous suffit de placer le site Web capturé sur un serveur Web (tel qu'Apache) pour obtenir une mise en miroir complète du site Web.
2. Maintenant qu'il existe d'autres logiciels similaires, pourquoi devons-nous développer snoics-reptile
Parce que certains fichiers ont souvent des fichiers incorrects lors du processus d'exploration et pour de nombreuses URL contrôlées par JavaScript ne peut pas être analysé correctement et snoics-reptile fournit des interfaces externes et des fichiers de configuration. Pour les URL spéciales, il peut librement étendre les interfaces fournies en externe et injecter des fichiers de configuration. Il peut essentiellement réaliser une analyse et une exploration correctes de toutes les pages Web.
La page d'accueil du projet : http://www.blogjava.net/snoics
11 Web-Harvest
Web-Harvest est un outil d'extraction de données Web open source Java. . Il est capable de collecter des pages Web spécifiées et d'extraire des données utiles de ces pages. Web-Harvest utilise principalement des technologies telles que XSLT, XQuery, des expressions régulières, etc. pour implémenter des opérations texte/xml.
Web-Harvest est un outil d'extraction de données Web open source écrit en Java. Il fournit un moyen d’extraire des données utiles de la page souhaitée. Pour atteindre cet objectif, vous devrez peut-être utiliser des technologies associées telles que XSLT, XQuery et des expressions régulières pour manipuler du texte/xml. Web-Harvest se concentre principalement sur le contenu des pages basé sur HMLT/XML, qui représente toujours la majorité. D'un autre côté, il peut facilement étendre ses capacités d'extraction en écrivant ses propres méthodes Java.
L'objectif principal de Web-Harvest est d'améliorer l'application des technologies d'extraction de données existantes. Son objectif n’est pas de créer une nouvelle méthode mais de fournir une meilleure façon d’utiliser et de combiner les méthodes existantes. Il fournit un ensemble de processeurs pour le traitement des données et le flux de contrôle. Chaque processeur est considéré comme une fonction qui a des paramètres et renvoie des résultats après exécution. De plus, le traitement est combiné dans un pipeline, afin qu'ils puissent être exécutés sous une forme chaînée. De plus, pour faciliter la manipulation et la réutilisation des données, Web-Harvest fournit également des couches supérieures et inférieures de variables pour stocker les variables déclarées.
Pour démarrer web-harvest, vous pouvez directement double-cliquer sur le package jar à exécuter. Cependant, cette méthode ne peut pas spécifier la taille de la machine virtuelle Java web-harvest. La deuxième méthode consiste à accéder au répertoire web-harvest sous cmd et à taper la commande "java -jar -Xms400m webharvest_all_2.jar" pour démarrer et définir la taille de la machine virtuelle Java à 400 Mo.
La page d'accueil du projet : http://web-harvest.sourceforge.net
12. ItSucks
ItSucks est un projet open source de robot d'exploration Web Java. Il peut être personnalisé de manière flexible et prend en charge la définition de règles de téléchargement via des modèles de téléchargement et des expressions régulières. Fournit une console et une interface de fonctionnement Swing GUI.
Caractéristiques :
Multi-threading
Expressions régulières
Enregistrer/charger les tâches de téléchargement
Aide en ligne
Prise en charge HTTP/HTTPS
Prise en charge du proxy HTTP
Authentification HTTP
Prise en charge des cookies
Agent utilisateur configurable
Limitation de connexion
Configuration du comportement des codes de réponse HTTP
Limitation de bande passante
Compression Gzip
La page d'accueil du projet : http://itsucks.sourceforge.net/
13. Crawler Web intelligent et simple
Smart and Simple Web Crawler est un framework de robot d'exploration Web. Prise en charge Lucene intégrée. Le robot d'exploration peut partir d'un seul lien ou d'un tableau de liens, offrant deux modes de parcours : itération maximale et profondeur maximale. Vous pouvez définir des filtres pour limiter les liens analysés. Trois filtres, ServerFilter, BeginningPathFilter et RegularExpressionFilter, sont fournis par défaut. Ces trois filtres peuvent être combinés avec AND, OR et NOT. Des écouteurs peuvent être ajoutés avant et après le processus d'analyse ou le chargement de la page.
14. Crawler4j
crawler4j est un robot d'exploration Web open source implémenté en Java. Fournit une interface simple et facile à utiliser pour créer un robot d'exploration Web multithread en quelques minutes.
L'utilisation de crawler4j est principalement divisée en deux étapes :
Implémentation d'une classe crawler héritée de WebCrawler
Classe Crawler implémentée en appelant CrawlController.
WebCrawler est une classe abstraite Si vous en héritez, vous devez implémenter deux méthodes : ShouldVisit et visit. Parmi eux :
shouldVisit consiste à déterminer si l'URL actuelle doit être explorée (visitée) ;
visit consiste à explorer les données de la page pointée par l'URL et les paramètres transmis. are C'est l'objet d'encapsulation Page pour toutes les données de la page Web.
De plus, WebCrawler dispose d'autres méthodes qui peuvent être remplacées, et les règles de dénomination de ses méthodes sont similaires aux règles de dénomination d'Android. Par exemple, la méthode getMyLocalData peut renvoyer les données dans WebCrawler ; la méthode onBeforeExit sera appelée avant la fin de WebCrawler et pourra effectuer certains travaux tels que la libération des ressources.
Licence
Copyright (c) 2010-2015 Yasser Ganjisaffar
Publié sous la licence Apache 2.0
Adresse open source : https://github. com/ yasserg/crawler4j
15. Ex-Crawler
Ex-Crawler est un robot d'exploration Web développé en Java. Le projet est divisé en deux parties, l'une est le processus démon et l'autre. est un robot d'exploration Web flexible et configurable. Utilisez une base de données pour stocker les informations des pages Web.
Ex-Crawler est divisé en trois parties (Crawler Daemon, Gui Client et Web Search Engine). La combinaison de ces trois parties deviendra un robot d'exploration et un moteur de recherche flexible et puissant. La partie moteur de recherche Web est développée en PHP et comprend un système de gestion de contenu CMS pour la maintenance du moteur de recherche.
La page d'accueil du projet : http://ex-crawler.sourceforge.net/joomla/
16
Crawler est un simple robot d'exploration Web. Il vous permet d’éviter d’écrire du code ennuyeux et sujet aux erreurs et de vous concentrer uniquement sur la structure du site Web que vous devez explorer. De plus, il est très simple à utiliser.
La page d'accueil du projet : http://projetos.vidageek.net/crawler/crawler/
Seventeen, Encog
Encog est un réseau neuronal avancé et un développement de robots/crawler bibliothèque de classe. Les deux fonctions fournies par Encog peuvent être utilisées séparément pour créer des réseaux de neurones ou des robots HTTP, et Encog prend également en charge l'utilisation combinée de ces deux fonctions avancées. Encog prend en charge la création de réseaux de neurones feedforward, de réseaux de neurones Hopfield et de graphiques auto-organisés.
Encog fournit des capacités avancées de programmation de robots/crawler HTTP. Prend en charge le stockage du contenu généré par les robots multithread dans la mémoire ou la base de données. Prend en charge l’analyse HTM et la gestion avancée des formulaires et des cookies.
Encog est un framework d'apprentissage automatique avancé qui prend en charge une variété d'algorithmes avancés, ainsi que la prise en charge de la normalisation des classes et du traitement des données. Les algorithmes d'apprentissage automatique tels que les machines à vecteurs de support, les réseaux de neurones artificiels, la programmation génétique, les réseaux bayésiens, les modèles de Markov cachés, la programmation génétique et les algorithmes génétiques sont pris en charge. La plupart des algorithmes de formation Encog sont multithread et s'adaptent bien au matériel multicœur. Encog peut également utiliser un GPU pour accélérer davantage les temps de traitement. Un atelier basé sur une interface graphique est également fourni pour aider à modéliser et à entraîner des algorithmes d'apprentissage automatique. Encog est activement développé depuis 2008.
Encog prend en charge plusieurs langages, dont C# Java et C
Il existe des codes sources dans différentes languessur GitHub.
http://www.heatonresearch.com/encog
https://github.com/encog
18. Crawljax
Crawljax est un outil Java open source Scraping automatisé et tests d'applications Web Ajax. Crawljax est capable d'explorer/explorer n'importe quelle application Web basée sur Ajax en déclenchant des événements et en remplissant des données dans des formulaires.
Heure d'inclusion : 2011-05-18 09:50:32
La page d'accueil du projet : http://crawljax.com/
Adresse open source : https:/ / github.com/crawljax/crawljax
Ce qui précède est le contenu de 19 robots d'exploration Web open source Java qui doivent être utilisés lorsque vous jouez avec le Big Data. Pour un contenu plus connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !