Web spider - web crawler

Soyez le premier à donner votre avis sur cette source.

Vue 17 842 fois - Téléchargée 1 621 fois

Description

C'est une version simple en mode console d'un robot web : un spider ou crawler.
Les spiders ou crawler sont des robots qui parcourent le web pour en connaitre sa structure et éventuellement son contenu.
Ce sont les petites bêtes qu'utilisent les moteurs et parfois aussi les meta moteur de recherche.

Pour faire fonctionner celui la, il faudra installer la librairie htmlparser qui se trouve à l'adresse : http://htmlparser.sourceforge.net/

Conclusion :


Utilisation :

- Ecrire l'url de base dans la variable URLSite
- Donner le nombre maximum d'url à "visiter" dans la variable maxURLtoVisit
- Rajouter éventuellement des extensions de fichiers dans le vecteur allowedExtensions si le site cible les utilise
- Positionner les différentes options du programme (leur nom est suffisement explicite)
A noter le booleen stayInDomain permet au spider de ne pas "déborder" de son site cible.
Si il est positionné à false, le spider ira se balader un peu n'importe où sur le web, mais c'est aussi interressant comme comportement.
- Compiler et lancer le programme

Liste des bugs : probablement...J'ai pas tout tester, à vous de jouer avec. Je reste à l'écoute pour les corrections (constructives s'entend, si c'est pour me dire il manque une virgule, je m'en peint le nombril avec le pinceau de l'indifférence... :o)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
9
Date d'inscription
vendredi 28 octobre 2011
Statut
Membre
Dernière intervention
30 novembre 2012

bjr!est ce que vous pouvez me donner l'algorithme ou une simple diagramme de ce crawler svp?
Messages postés
9
Date d'inscription
vendredi 28 octobre 2011
Statut
Membre
Dernière intervention
30 novembre 2012

bjr!est ce que c'est possible de mettre une nombre infinie sur maxURLtoVisit?
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
15
Bonjour,

Non, vous n'avez rien lu puisque la documentation contient la réponse à votre question : http://htmlparser.sourceforge.net/javadoc/index.html'org/htmlparser/tags/MetaTag.html

NodeList metaList = parser.parse(new NodeClassFilter(MetaTag.class));

class MetaDescriptionTagFilter implements NodeFilter {

@Override
public boolean accept(Node node) {
Tag tag = (Tag) node;
if (tag.getAttribute("name") != null && tag.getAttribute("name").equalsIgnoreCase("description") && tag.getAttribute("content") != null) return true;
return false;
}

}

NodeList metaDescriptionTags = metaList.extractAllNodesThatMatch(new MetaDescriptionTagFilter());
SimpleNodeIterator metaDescriptionTagsIterator = metaDescriptionTags.elements();
String metaDescription = "";
while (metaDescriptionTagsIterator.hasMoreNodes()) {
Tag tag = (Tag) metaDescriptionTagsIterator.nextNode();
metaDescription = tag.getAttribute("content");
System.out.println(df.format(visitedURL.size()) + " url : " + url.toString() + " - metaDescription : " + metaDescription);
}

ou quelquechose comme ça...
Messages postés
9
Date d'inscription
vendredi 28 octobre 2011
Statut
Membre
Dernière intervention
30 novembre 2012

Bonjour!j'ai lu la documentation,est ce qu'on ne peut pas modifier tout simplement le code pour avoir le contenu dans la balise meta description svp?
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
15
Bonjour,

Je vous invite à lire la documentation de l'analyseur HTML utilisé, dans cette source, qui se trouve à l'adresse : http://htmlparser.sourceforge.net/
Il est possible de faire de l'extraction de texte ou du screen scraping, voire pleins d'autres choses.
Afficher les 22 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.