Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Détecteur de référencement

13 réponses
Avatar
Mihamina Rakotomandimby
[Attention, suivi sur fr.comp.infosystemes.www.auteurs,
en tenir compte si réponse strictement Pythonesque]

Bonjour,
Je souhaite faire un espèce de détecteur de référencement.
En gros:
- On soumet une URL,
- On soumet aussi les mots-clés qu'on veut
- On soumet la durée de surveillance (optionnelle)
Et hop, on reçoit (régulièrement) un mail en disant qu'à telle date à
telle heure le site était en telle position de tel moteur, avec telle
requete de telle origine géographique.

Je souhaite écrire le bouzin en Python et le mettre en GPL.

1) Je suppose de toutes façon que ça existe, mais mon but est d'avoir un
rapport de la forme que je veux, je dois donc le faire moi meme.

2) Vous sauriez quels principes utilisent ce genre d'outils si vous en
connaissez? Je veux dire essentiellement, moi, je me vois parser la page
retournée par le moteur de recherche. C'est peut-être la mauvaise
solution...

3) Des conseils?... :)

Merci d'avance.

PS: Sauriez si il existe une liste de proxies HTTP en usage non payant
mais qui me permettrai de faire des requetes "comme si" on la faisait
d'un certain pays? Comment en trouver (des proxies).

--
Huile Essentielle de Camphre http://www.huile-camphre.fr
Infogerance http://www.infogerance.us
(Serveurs, Postes de travail, Développement logiciel)

3 réponses

1 2
Avatar
Olivier Masson
Antoine a écrit :


preg_match('@<h2 class=r><a href="(.+)>(.+)</h2>@Uis',
$this->divs[$a], $match // on veut $match[2]



(snip)

Merci pour les indications. Comme je suis à peu près nul en
expressions régulières, je me souviens que je m'étais farci le
traitement en strpos laborieux.




On ne fait rien sans regexp : il faut s'y mettre !
Celles qui j'ai utilisées pour récupérer divs, liens, descriptions et
titres sont ultra-élémentaires.
Les paranthèses désignent des groupes : le premier contient tout ce
qu'il y a après la chaîne <h2 class=r><a href=" (@ est un délimiteur)
jusqu'au premier signe > (marche pas si tu n'est pas en mode ungreedy,
seul petite difficulté). Le 2e récupère dans le contenu texte (affiché)
du lien. Et hop, il manque un petit </a> avant le </h2> (mais ça ne pose
pas problème car il convient d'utiliser strip_tags qui va supprimer les
balises.)


Et tu passes en requêtes "post" pour bien simuler un comportement
humain ou tu t'autorises des "get" bruts de fonderie ?




Un post ne simule pas forcément un comportement humain. J'utilise GET,
comme d'ailleurs lorsque tu valides une requête Google :
<form name=gs method=GET action=/search>.

Ensuite, tu constates que Google envoie aussi :

<input type=hidden name=hl value="fr">
<input type=hidden name=safe value="off">
<input type=text name=q sizeA maxlength 48 value="ma recherche"
title="Rechercher">
<input type=submit name="btnG" value="Rechercher">

Donc, le minimum c'est de respecter ça.
Avatar
Mihamina Rakotomandimby
Pour ce qui est du problème initial, soit de suivre le
positionnement d'un site dans les moteurs populaires, donc avec des
requêtes peu nombreuses qui se répètent, je ne crois pas que les
moteurs réagissent pour se protéger. On peut même utiliser l'API
de google pour cela, par exemple.



Merci à tous pour toutes ces indications, en tout cas. Je digère.

--
Huile Essentielle de Camphre http://www.huile-camphre.fr
Infogerance http://www.infogerance.us
(Serveurs, Postes de travail, Développement logiciel)
Avatar
Antoine
Olivier Masson wrote :

On ne fait rien sans regexp : il faut s'y mettre !



Tu as raison mais depuis que j'ai lu Lerdorf dire que les
expressions régulières devaient être utilisées avec parcimonie car
gourmandes, je me réfugie derrière ce (mauvais) argument.

Celles qui j'ai utilisées pour récupérer divs, liens, descriptions
et titres sont ultra-élémentaires.
Les paranthèses désignent des groupes : le premier contient tout
ce qu'il y a après la chaîne <h2 class=r><a href=" (@ est un
délimiteur) jusqu'au premier signe > (marche pas si tu n'est pas
en mode ungreedy, seul petite difficulté). Le 2e récupère dans le
contenu texte (affiché) du lien. Et hop, il manque un petit </a>
avant le </h2> (mais ça ne pose pas problème car il convient
d'utiliser strip_tags qui va supprimer les balises.)



Merci pour les explications. Je vais tâcher de m'y mettre en mai.

Un post ne simule pas forcément un comportement humain. J'utilise
GET, comme d'ailleurs lorsque tu valides une requête Google :
<form name=gs method=GET action=/search>.



Tout à fait. J'ai confondu avec un autre site "curlé".
Je viens de vérifier : get pour yahoo et live également.

Ensuite, tu constates que Google envoie aussi :

<input type=hidden name=hl value="fr">
<input type=hidden name=safe value="off">
<input type=text name=q sizeA maxlength 48 value="ma
recherche" title="Rechercher">
<input type=submit name="btnG" value="Rechercher">

Donc, le minimum c'est de respecter ça.



Oui et idéalement de bien intégrer le referer quand on passe d'une
page à la suivante, si l'on s'intéresse à plus de 10 résultats.

--
Antoine
1 2