WEB SPIDER - WEB CRAWLER

karoudja Messages postés 4 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 17 août 2007 - 17 août 2007 à 11:44
naivoh Messages postés 9 Date d'inscription vendredi 28 octobre 2011 Statut Membre Dernière intervention 30 novembre 2012 - 30 nov. 2012 à 22:28
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42291-web-spider-web-crawler

naivoh Messages postés 9 Date d'inscription vendredi 28 octobre 2011 Statut Membre Dernière intervention 30 novembre 2012
30 nov. 2012 à 22:28
bjr!est ce que vous pouvez me donner l'algorithme ou une simple diagramme de ce crawler svp?
naivoh Messages postés 9 Date d'inscription vendredi 28 octobre 2011 Statut Membre Dernière intervention 30 novembre 2012
30 nov. 2012 à 21:58
bjr!est ce que c'est possible de mettre une nombre infinie sur maxURLtoVisit?
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
20 nov. 2012 à 20:45
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...
naivoh Messages postés 9 Date d'inscription vendredi 28 octobre 2011 Statut Membre Dernière intervention 30 novembre 2012
20 nov. 2012 à 09:20
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?
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
14 nov. 2012 à 20:05
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.
naivoh Messages postés 9 Date d'inscription vendredi 28 octobre 2011 Statut Membre Dernière intervention 30 novembre 2012
14 nov. 2012 à 12:47
Bonjour!c'est une bonne code sources, ça marche bien mais je veux savoir comment récupérer les contenues du site à part du titre et le lien dans le code?mer6
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
29 avril 2012 à 10:26
Bonjour,
il faut ajouter une librairie permettant de créer des fichiers zip.
Ensuite il faut créer un fichier texte, par exemple, ajouter les URLs trouvées dans ce fichier texte.
Puis une fois la recherche d'URL terminée, utiliser les fonctionnalités fournit par la nouvelle librairie pour compresser le fichier texte.
3afafa Messages postés 1 Date d'inscription mercredi 25 avril 2012 Statut Membre Dernière intervention 27 avril 2012
27 avril 2012 à 12:52
bravo source très intéressante, ms svp comment je peux grouper ces liens dans un fichier .zip??
merci.
magnific0 Messages postés 3 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 5 juin 2010
5 juin 2010 à 14:26
merci ca marche maintenant.
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
5 juin 2010 à 00:57
Si vous avez des erreurs de type c'est surement parce vous essayer de compiler ce source avec une version trop récente de htmlparser. Deux solutions :
- Rechercher une version plus ancienne d'htmlparser.
- modifier le source du crawler pour le rendre compatible avec votre version de htmlparser.
magnific0 Messages postés 3 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 5 juin 2010
3 juin 2010 à 00:12
bonjour a tous.
g des erreurs quand je compile la source. kelkun pourrait m'aidé ???
NB: g effectué aucune modif sur le codes

./spider/Spider.java:112: incompatible types
found : void
required: org.htmlparser.util.NodeList
NodeList titleList = parser.parse(new NodeClassFilter (TitleTag.class));
^
./spider/Spider.java:115: incompatible types
found : void
required: org.htmlparser.util.NodeList
NodeList list = parser.parse (new NodeClassFilter (LinkTag.class));
^
2 errors
magnific0 Messages postés 3 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 5 juin 2010
2 juin 2010 à 23:29
bonjour. j'ai essayer de compiler le code et j'ai eu des erreurs... need some help.
voici l'erreur: (j'ai rien modifier)

./spider/Spider.java:112: incompatible types
found : void
required: org.htmlparser.util.NodeList
NodeList titleList = parser.parse(new NodeClassFilter (TitleTag.class));
^
./spider/Spider.java:115: incompatible types
found : void
required: org.htmlparser.util.NodeList
NodeList list = parser.parse (new NodeClassFilter (LinkTag.class));
hatimhamid Messages postés 1 Date d'inscription vendredi 25 juillet 2008 Statut Membre Dernière intervention 8 octobre 2009
8 oct. 2009 à 15:49
Bonjour.
Je ne suis pas très familiers des web crowlers.
Pourriez-vous me décrire en quelques lignes quelles sont les étapes à suivre pour tester votre code? J'ai un fort besoin de dévelpooer un web crowler spécifique à mes exigences.
Merci
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
16 déc. 2008 à 11:18
Bonjour,

vous n'avez peut être pas modifié la source, mais vous n'avez pas la même arborescence que celle donnée en exemple (voila/crawler/Crawler/class), ni même le même nom de fichier...

Voici la procédure pour exécuter le fichier class que vous avez compilé (en partant du principe que vous travaillez dans un répertoire nommé "tmp" à la racine de votre arborescence (Ce message fait suite au message du 26/04/2008 08:41:21 qui montre comment compiler la source) :

1) Se positionner dans le répertoire "tmp" : cd \tmp
2) exécuter la ligne de commande suivante : java -classpath .;.\htmlparser.jar spider.Spider
ndiengphp Messages postés 3 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 14 décembre 2008
14 déc. 2008 à 09:42
REbonjour ALEXN,

Voila les lignes exacts de l'érreur:

Exception in thread "main" java.lang.NoClassDefFoundError: voila/crawler/Crawler/class
Caused by: java.lang.ClassNotFoundException: voila.crawler.Crawler.class
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

Si vous pouvez me venir au secour s'il vous plait.

JE vous remercie.
ndiengphp Messages postés 3 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 14 décembre 2008
13 déc. 2008 à 15:16
Rebonjour ALEXN,


En fait je n'ai pas modifier le code source. Je dois utiliser un crawler pour extraire les informations( url de documents) contenus dans Wikipedia.

ET donc par chance je suis tombé sur votre code. je dois juste la modifier (après avoir testé) pour qu'il me suave les informations dans une BDD sql en utilisant phpmyadmin. Cependant j'ai juste changer url site et mis http://ent.wikipedia.org.


Comme je vous l'ai dit, la compilation marche ( ne génère aucune erreur)et j'ai le fichier spider.class. Par contre l'exécution ne marche pas:

java spider.class oubien java -classpath /tmp/hmlparser.jar spider/spider.class

J'ai essayé les deux mais j'obtient comme erreur:

Exception in Thread "main" java.lang.NoClassDefFoundError: spider/class

La premiere éxécution, j'ai défini dans le classpath ou se trouve toute la source de Html parser.


Je vous remerci.
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
13 déc. 2008 à 13:57
Bonjour,

"Exception in thread main" n'est pas suffisamment explicite pour que je puisse vous aider dans la résolution de l'erreur. Il faut faire une copie de la pile des messages d'erreurs, notamment pour savoir à quelle ligne se produit l'erreur, et m'indiquer quelle est la ligne de code source de l'erreur (un numéro de ligne ne veut rien dire surtout si vous avez modifié un peu la source...)
ndiengphp Messages postés 3 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 14 décembre 2008
13 déc. 2008 à 13:02
Bonjour ALEXN,

tout d'abord merci beaucoup pour ce source. car cela fait une semaine que j'éssayer de coder moi meme un spider car ne savait pas que y'avais des sources disponibles. Je suis une débutante.

Donc j'ai suivi à la votre recommendation pour la compilation, et elle marche. Mais je n'arrive pas à éxécuter le fichier Spider.class

Il me met comme erreur exeption in Thread main? alorque que je renseigne bien le classpath meme lors de léxécution et je suis dans le bon répertoire.

Je vous remercie de votre réponse.
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
26 avril 2008 à 08:41
Bonjour,

je ne connais pas netbeans, je ne serais pas d'une grande aide. Sinon voici une méthode pour compiler en ligne :

- créer un répertoire nommé tmp à la racine d'une machine
- copier le fichier htmlparser.jar dans le répertoire tmp
- créer un répertoire spider dans le répertoire tmp
- copier le fichier Spider.java dans le répertoire spider
- compiler : javac -classpath \tmp\htmlparser.jar spider\Spider.java
Nextanalyzer Messages postés 1 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 23 avril 2008
23 avril 2008 à 10:22
Bonjour,

Je trouve me script très intéréssant et j'ai voulu l'essayer, je rencontre un gros soucis pour l'installation des librairies htmlphraser.
Je suis sur macintosh et j'utilise Netbeans, j'ai bien copier le contenu du dossier bin et lib dans ceux respectifs localisés dans libraries/java ...
J'ai beau compiler donc javac spider.java et la que des erreurs du à la librarie, j'ai donc du mal l'installer, je ne sais pas.

Pourriez vous m'éclairer s'il vous plaît ?

En vous remerciant d'avance.
cs_AlexN Messages postés 694 Date d'inscription lundi 5 décembre 2005 Statut Membre Dernière intervention 8 janvier 2014 19
17 août 2007 à 20:35
de rien

à noter :

Il existe principalement deux méthodes pour parcourir un site (une arborescence) :

- breadth first : le robot visite les url au fur et et mesure qu'elles apparaissent dans les pages.
- deepth first : le robot commence à lire les pages puis descend dans l'arborescence dès qu'une url lue le permet puis termine la lecture des pages en remontant.

le source posté ici utilise la première méthode.
karoudja Messages postés 4 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 17 août 2007
17 août 2007 à 11:44
bravo source très intéressante. Celle-ci m'a fortement aidé pour mon application. merci bcp.
Rejoignez-nous