[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)
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>.
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>.
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>.
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)
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)
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)
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.
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
Olivier Masson <sisemen@laposte.net> 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.
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.