Lire un robots.txt

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics


Blini
WRInaute impliqué
WRInaute impliqué
 
Messages: 506
Inscription: 29 Nov 2004

Lire un robots.txt

Message le Dim Fév 13, 2005 10:42

Bonjour,

Un post pas très ancien ne m'a pas apporté de réponse claire. En plus, ce n'était pas le sujet principal du post, alors je me permets d'ouvrir celui-ci.
Voici la question...

Il faut que je lise un robots.txt. Supposons que je sois dans une section de "user-agent" qui va bien, et que j'ai stocké dans $pattern la chaîne de caractères indiquée en face d'un "Disallow:".
Quelle devrait être la regex à écrire pour comparer une url $url à ce $pattern ?
Je propose ceci, mais je n'en suis pas sûr:
Code: Tout sélectionner
$pattern = str_replace(array('+', '.', '*', '?'), array('\+', '\.', '.*', '\?'), $pattern);
$pattern = '@^'.$pattern.'@';
if (preg_match($pattern, $url))
   print('ça matche, donc à exclure'."\n");


Des avis ?


Blini
WRInaute impliqué
WRInaute impliqué
 
Messages: 506
Inscription: 29 Nov 2004

Message le Lun Fév 14, 2005 22:34

Personne ?

fbparis
WRInaute impliqué
WRInaute impliqué
 
Messages: 685
Inscription: 1 Fév 2005

Message le Lun Fév 14, 2005 22:41

ok je vais le faire, patience :)
tu fais un robot en php ? perso je te conseille python pour se genre de truc, c plus rapide et plus elegant je trouve..


Blini
WRInaute impliqué
WRInaute impliqué
 
Messages: 506
Inscription: 29 Nov 2004

Message le Lun Fév 14, 2005 22:43

Je l'ai fait, c'est juste que comme je trouve la doc officielle pas très claire, je voulais un avis sur la regex !! (sans compter Google qui reconnait maintenant des caractères génériques...)

Didier_S
WRInaute impliqué
WRInaute impliqué
 
Messages: 567
Inscription: 24 Aoû 2004

Message le Lun Fév 14, 2005 22:52

fbparis a écrit:ok je vais le faire, patience :)

MDR tout le monde avait compris et personne a voulu s'y coller !
j'avoue, je me suis dit "si à minuit y'a rien, je m'y mets"
(ça tient toujours...)
(r'gardez, y'a fbparis qui se frotte les mains en se disant "j'lui laisse ?")

fbparis
WRInaute impliqué
WRInaute impliqué
 
Messages: 685
Inscription: 1 Fév 2005

Message le Lun Fév 14, 2005 23:01

bah je viens de verifier les specs, il semble que tu pourrais meme te passer de regex

genre pour chaque ligne de disallow il faut que :

strpos($host . $path, $host . $disallow) !== 0

ou $host est le domaine (www.example.com)
et $path la suite.. : / , /index.html, etc

oublis pas que pour un user-agent donné, il peut y avoir plusieurs lignes de disallow (mais pas de regex dans les disallow)

sinon je dirais que ton truc est bon, a condition que ton $url soit en fait seulement le path, non ?


Blini
WRInaute impliqué
WRInaute impliqué
 
Messages: 506
Inscription: 29 Nov 2004

Message le Mar Fév 15, 2005 9:55

Oui, pardon, j'ai extrait un bout de mon code, et effectivement, $url ne doit être que le path.
Sinon, je ne pense pas pouvoir me passer du regex puisque Google reconnait des patterns du type:
Disallow: /path/tata*
ou encore
Disallow: *.jpg$

Ce qui m'inquiète en fait, ce sont les caractères qui pourraient apparaître dans un disallow et qui ont une signification particulière pour la regex. Par exemple, le signe "+" que je dois échapper pour qu'il soit compris comme un caractère par la regex. Je pense avoir oublier des caractères dans le même genre...

fbparis
WRInaute impliqué
WRInaute impliqué
 
Messages: 685
Inscription: 1 Fév 2005

Message le Mar Fév 15, 2005 11:10

je pige pas bien ton probleme, que le google bot le fasse ou pas, ca change rien pour toi.. c'est mieux si ton robot respecte la norme pour robots.txt...

sinon tu remplaces "*" par ".*" dans ton pattern...


Blini
WRInaute impliqué
WRInaute impliqué
 
Messages: 506
Inscription: 29 Nov 2004

Message le Mar Fév 15, 2005 11:54

Mon seul souci, c'est de pas oublier un truc. Si un gars commence à mettre des wildcards pour le bot Google, il peut (je l'ai vu) se dire que c'est OK pour les autres bots, et utiliser aussi des wildcards pour les autres robots.
Mais bon, je me fais peut-être ch... pour rien, après tout, la faute au gars s'il n'est pas dans la norme, hein ?
Bon, dans ce cas, j'ai bien noté le coup du strpos plutôt que tu preg_match. Ça me facilitera la vie.
Merci pour votre aide :)


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

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

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