éviter les spider-trap

fabrisss
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 30
Inscription: 13 Jan 2006

éviter les spider-trap

Message le Mer Déc 13, 2006 14:48

Bonjour,

Je développe un petit crawler web basique, sans grande prétention, mais celui-ci ne cesse de s'engouffrer dans des méchants pièges (intentionnels ou pas ?) du style :

http://www.example.com/a/b/a/b/a...

ou

http://www.example.com/script.php?a=1&a=1&a=1...

La seule solution simple que j'ai trouvé est de compter le nombre de "/" ou de "?" dans l'URL et de bloquer les URL en comportant plus de 10 (par exemple). Avez-vous d'autres idées ou remarques ?

Merci d'avance,

PS : le problème suivant est d'éliminer, dans la liste des URL trouvées par le crawler, les URL qui référencent la même page.

[Edit kazhar : Le domaine de test, c'est example. Pas monsite]


ecocentric
WRInaute accro
WRInaute accro
 
Messages: 3602
Inscription: 10 Fév 2004

Message le Mer Déc 13, 2006 15:03

Quelques idées :

1. associer à chaque page un hash pour détecter les pages identiques
2. décomposer les paramètres pour détecter les paramètres en double
3. limiter la profondeur de crawl au niveau répertoire (à combiner avec 1)
4. Vérifier si une URL du type -http://www.monsite.com/a/b/a/b/a n'est pas due à un bug du crawler (mauvaise reconstitution de l'URL dans le cas de chemins relatifs).

Hervé ;-)
Dernière édition par ecocentric le Mer Déc 13, 2006 15:07, édité 1 fois.


ecocentric
WRInaute accro
WRInaute accro
 
Messages: 3602
Inscription: 10 Fév 2004

Re: éviter les spider-trap

Message le Mer Déc 13, 2006 15:04

fabrisss a écrit:[Edit kazhar : Le domaine de test, c'est example. Pas monsite]


PR8 seulement. J'aurais cru à plus :lol: !

madz06
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 16
Inscription: 5 Déc 2006

Message le Mer Déc 13, 2006 15:06

Tu as plusieurs possibilités pour essayer d'éviter cela, ou en tout cas arrêter la procédure au lieu de continuer indéfiniment.

Tu peux par exemple construire ton crawler selon une logique récursive, et stopper le crawl si tu es descendu à plus de x niveaux.

Une autre méthode serait l'étude statistique du contenu de la page: si le contenu est identique à plus de x% dans deux niveaux consécutifs, alors le crawler s'arrête (tu peux même combiner ça à la méthode ci-dessus pour de meilleurs résultats).

Enfin, tu peux dire interdire au crawler de suivre les liens avec Query String (ce qui suit le ?), au risque de perdre des pages pertinentes.

Là comme ça j'ai pas plus d'idées, bon courage ^^

fabrisss
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 30
Inscription: 13 Jan 2006

Message le Mer Déc 13, 2006 15:16

ecocentric a écrit:Quelques idées :
1. associer à chaque page un hash pour détecter les pages identiques

non car les pages composant un piège ne sont pas exactement identiques : l'URL "piégeuse" est différente vu qu'elle est à chaque fois de plus en plus longue
ecocentric a écrit:2. décomposer les paramètres pour détecter les paramètres en double

ok pour résoudre le 2ème cas
ecocentric a écrit:3. limiter la profondeur de crawl au niveau répertoire (à combiner avec 1)

oui bien mais on perd des pages
ecocentric a écrit:4. Vérifier si une URL du type -http://www.monsite.com/a/b/a/b/a n'est pas due à un bug du crawler (mauvaise reconstitution de l'URL dans le cas de chemins relatifs).

mon crawler se porte bien, merci ;-)
ecocentric a écrit:Hervé ;-)

Michel ;-)


ecocentric
WRInaute accro
WRInaute accro
 
Messages: 3602
Inscription: 10 Fév 2004

Message le Mer Déc 13, 2006 15:19

Bonjour Michel,

> l'URL "piégeuse" est différente

Je parlais de faire un hash sur le contenu, ou sur des parties de contenu (tout ou body uniquement, par exemple), pas sur l'URL.

Hervé.

<mode private="on">:lol:</mode>


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités