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)

10 réponses

1 2
Avatar
Denis Beauregard
Le Tue, 22 Apr 2008 14:27:13 +0300, Mihamina Rakotomandimby
écrivait dans fr.comp.infosystemes.www.auteurs:

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).




Une recherche de anonymizer devrait en trouver une bonne liste...


Denis
Avatar
Olivier Masson
Mihamina Rakotomandimby a écrit :

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.




Ca n'existe pas tant que ça. Tu peux toujours filer ton pognon aux
quelques boites qui vendent un tel outil très cher et par abonnement à
l'année. Mais comme tous leurs utilisateurs sont contents, tant mieux.

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...




Il n'y a pas d'autres solutions.
Google et Yahoo ont leur API (je donne l'adresse pour la clef google cat
pas toujours facile à trouver :
http://code.google.com/apis/base/signup.html) mais les résultats ne
correspondent pas aux résultats réels, donc je ne sais pas trop à quoi
ça sert.
J'utilisais un petit soft (GoogleMon) qui utilise l'API Google : les
résultats sont là mais mes clients ne trouvant pas les mêmes, c'était
problématique.
Donc j'ai crée mon truc, tout sale et, bien entendu, contraire aux
règles d'utilisation Google qui ne souhaite pas que l'on parse
automatiquement ses résultats. Ca marche très bien.

3) Des conseils?... :)




Quelque soit la technique (DOM ou simples regexp), il faut surtout faire
remonter les erreurs car le moteur peut changer son code quand ça lui
chante. Pour l'instant, ça ne m'est pas arrivé avec Google depuis
plusieurs mois.

Si tu as 100 sites à vérifier avec 50 requêtes pour chacun sur 20 pages
de résultats, soit ça te prend des heures, soit ton IP est bannie
(temporairement) par Google.
Pour ma part, j'ai mis un sleep aléatoire (je suis parano, j'imagine
qu'ils regardent si les requêtes sont trop régulières) entre chaque
demande et je colle au maximum avec une requête humaine (par ex. je ne
fais pas une demande d'une page contenant 100 résultats, mais bien 10
pages de 10 résultats.)
Tout cela est donc empirique, mais ça fonctionne jusqu'à maintenant.

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).




Ca c'est pas dur, mais je ne connais pas de solutions légales :/
On ne peut pas se restreindre à un pays avec Tor par hasard ?
Avatar
Yamo'
Salut,
Le Tue, 22 Apr 2008 14:27:13 +0300, Mihamina Rakotomandimby a écrit ce
message ( <fuki34$12i3$ ):

Bonjour,
Je souhaite faire un espèce de détecteur de référencement. En gros: - On
soumet une URL,



Tu peux contacter celui qui a fait goldorank si tu as besoin d'aide :

http://www.websiteburo.com/goldorank/index_fr.php



Stéphane
--
Pour moi, une seule chose est claire. Avant d'effectuer toute
modification des règles, il faut définir des règles de modification
des règles.
-+- TM in: Guide du Cabaliste Usenet - Usenet a-t-il ses règles ? -+-
Avatar
Antoine
Olivier Masson wrote :

Ca n'existe pas tant que ça. Tu peux toujours filer ton pognon aux
quelques boites qui vendent un tel outil très cher et par
abonnement à l'année. Mais comme tous leurs utilisateurs sont
contents, tant mieux.



Oui et pour cause, il y a le matraquage publicitaire qui va bien en
faveur de ces outils sur nombre de sites francophones consacrés au
référencement.

Un outil dont on parle très peu (et pour cause) sur les sites
français : webceo. Il existe une version gratuite depuis des années
et du temps où je m'en servais, ça fonctionnait bien.

Pour ma part, j'ai mis un sleep aléatoire (je suis parano,
j'imagine qu'ils regardent si les requêtes sont trop régulières)
entre chaque demande et je colle au maximum avec une requête
humaine (par ex. je ne fais pas une demande d'une page contenant
100 résultats, mais bien 10 pages de 10 résultats.)
Tout cela est donc empirique, mais ça fonctionne jusqu'à
maintenant.



Et tu as bien sûr aussi fait "tourner" le user-agent ?

J'ai fait la même chose sauf que j'ai perdu le script. Si tu es prêt
à le diffuser, je suis preneur.

--
Antoine
Avatar
melanie
On Tue, 22 Apr 2008 14:27:13 +0300, Mihamina Rakotomandimby wrote:


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).





http://proxy.org/cgi_proxies.shtml
http://www.free-proxy.fr/
http://www.tntproxy.com/
Avatar
Olivier Masson
Antoine a écrit :

Oui et pour cause, il y a le matraquage publicitaire qui va bien en
faveur de ces outils sur nombre de sites francophones consacrés au
référencement.




Forums qui appartiennent parfois à ceux qui créent ces mêmes outils.


Et tu as bien sûr aussi fait "tourner" le user-agent ?



Tu veux dire modifier le user-agent à chaque requête ? Non.
Je ne vois pas bien l'utilité du moment que ce dernier est correspond à
un navigateur classique.
Changer le UA alors que l'IP reste inchangée est un peu louche. Le mieux
est l'ennemi du bien, dit-on.


J'ai fait la même chose sauf que j'ai perdu le script. Si tu es prêt
à le diffuser, je suis preneur.




Etourdi !
Non, je ne le diffuse pas : c'est sale (je n'ai jamais appris à bien
développer), je modifie la base à la main pour tout ajouter (faudrait
que j'utilise un bon data grid ajax style
http://www.turboajax.com/products/turbogrid/demo/ mais gratos) et si
Google décide de modifier une class, plus rien ne fonctionne.

Mais bon, tout n'est qu'enrobage de :

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

Dans les divs[] :
preg_match_all('@<div class=g(.*)>(.+)</div>@Uis', $this->content, $reg)
// on prend les $reg[2][$i];

Et le $content un bête file_get_contents précédé de header pour définir
un bon UA (entre autres).

Le U dans la pcre est important, sinon le . est gourmand et on récupère
donc trop de choses.
Avatar
Antoine
Olivier Masson wrote :

Antoine a écrit :

Oui et pour cause, il y a le matraquage publicitaire qui va bien
en faveur de ces outils sur nombre de sites francophones
consacrés au référencement.




Forums qui appartiennent parfois à ceux qui créent ces mêmes
outils.



Eh oui...

Et tu as bien sûr aussi fait "tourner" le user-agent ?



Tu veux dire modifier le user-agent à chaque requête ? Non.



Si ; typiquement je m'étais créé un tableau d'une dizaine de UA
usuels (pris dans un bête log apache) et je tirais un UA de façon
aléatoire mais respectueuse des statistiques générales de
navigateurs (60% de IE et variantes, 30% de FF et consorts, 10% de
navigateurs exotiques).

Je ne vois pas bien l'utilité du moment que ce dernier est
correspond à un navigateur classique.



Evidemment il faut faire prendre à l'UA des valeurs réalistes (cf.
ci-dessus).

Changer le UA alors que l'IP reste inchangée est un peu louche. Le
mieux est l'ennemi du bien, dit-on.



Plusieurs FAI font (faisaient ?) partager une même adresse IP à
plusieurs clients ; AOL utilisait ce genre de proxies.

Tu as aussi le cas des sociétés/organisations_en_tout_genre qui ont
un point d'accès au net unique avec une IP unique et parfois
plusieurs miliers d'utilisateurs derrière, pas tous équipés du même
navigateur. C'est exactement le cas de la boîte qui m'emploie.

J'ai fait la même chose sauf que j'ai perdu le script. Si tu es
prêt à le diffuser, je suis preneur.




Etourdi !



Je ne te le fais pas dire ! Je perds rarement des données ou
programmes ; je m'en suis voulu sur ce coup.

Non, je ne le diffuse pas : c'est sale



Pas de problème.

Mais bon, tout n'est qu'enrobage de :

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.

Dans les divs[] :
preg_match_all('@<div class=g(.*)>(.+)</div>@Uis', $this->content,
$reg) // on prend les $reg[2][$i];

Et le $content un bête file_get_contents précédé de header pour
définir un bon UA (entre autres).



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

--
Antoine
Avatar
Denis Beauregard
Le 24 Apr 2008 16:33:41 GMT, Antoine
écrivait dans fr.comp.infosystemes.www.auteurs:

Plusieurs FAI font (faisaient ?) partager une même adresse IP à
plusieurs clients ; AOL utilisait ce genre de proxies.



Mais ces IP sont connues. Ne pas oublier que les moteurs de
recherche sont souvent des sites avec un million de visiteurs par
jour et les plus populaires essaient d'optimiser l'affichage de leurs
bannières, donc savent très bien comment démasquer un robot qui
utiliserait free comme FAI, par exemple (en supposant que free n'a
pas de proxy pour ses clients).

Tu as aussi le cas des sociétés/organisations_en_tout_genre qui ont
un point d'accès au net unique avec une IP unique et parfois
plusieurs miliers d'utilisateurs derrière, pas tous équipés du même
navigateur. C'est exactement le cas de la boîte qui m'emploie.



Ce qui implique que tu utilises une IP déjà connues pour abriter
un grand nombre d'utilisateurs différents.

J'ai fait la même chose sauf que j'ai perdu le script. Si tu es
prêt à le diffuser, je suis preneur.




Etourdi !



Je ne te le fais pas dire ! Je perds rarement des données ou
programmes ; je m'en suis voulu sur ce coup.



Faut faire une sauvegarde complète au moins une fois l'an.

Non, je ne le diffuse pas : c'est sale



Pas de problème.

Mais bon, tout n'est qu'enrobage de :

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.

Dans les divs[] :
preg_match_all('@<div class=g(.*)>(.+)</div>@Uis', $this->content,
$reg) // on prend les $reg[2][$i];

Et le $content un bête file_get_contents précédé de header pour
définir un bon UA (entre autres).



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



Il faut voir ce que les moteurs acceptent comme arguments. Mais
de toutes façons, certains ont officiellement une politique anti-
moteur annoncée sur leur site. Un des buts c'est de réduire la
pollution de leur moteur avec du spam (quoi que certains moteurs
semblent encourager ce type de pollution), ce spam étant par exemple
une sélection de 10 sites avec telle sélection de mots.

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.

Par contre, je pense que certains moteurs alternent les 10 ou 20
premiers résultats selon l'heure. Quand j'ai acheté de la pub
adwords, j'ai regardé les résultats pour voir si ma pub sortait
et j'ai constaté que les résultats (pas la pub mais les liens
trouvés) variaient au lieu d'être fixes. C'est peut-être une
question de sujet de recherche.


Denis
Avatar
Antoine
Denis Beauregard
wrote :

Le 24 Apr 2008 16:33:41 GMT, Antoine
écrivait dans fr.comp.infosystemes.www.auteurs:

Plusieurs FAI font (faisaient ?) partager une même adresse IP à
plusieurs clients ; AOL utilisait ce genre de proxies.



Mais ces IP sont connues.



Il est possible de connaître ces IPs ; tu crois vraiment que Big
Brother connaît tous les FAI de la planète, et parmi ceux-ci ceux
qui utilisent des proxies, et parmi les proxies les adresses IP de
ces derniers (à supposer qu'elles soient non fluctuantes) ?

Tu as aussi le cas des sociétés/organisations_en_tout_genre qui
ont un point d'accès au net unique avec une IP unique et parfois
plusieurs miliers d'utilisateurs derrière, pas tous équipés du
même navigateur. C'est exactement le cas de la boîte qui
m'emploie.



Ce qui implique que tu utilises une IP déjà connues pour abriter
un grand nombre d'utilisateurs différents.



Oui et justement on peut l'exploiter pour automatiser le processus
décrit par Arnaud en faisant varier, donc de façon très réaliste, le
UA.

Je ne te le fais pas dire ! Je perds rarement des données ou
programmes ; je m'en suis voulu sur ce coup.



Faut faire une sauvegarde complète au moins une fois l'an.



Ahum, tu prêches un convaincu. Le script a été écrasé lors d'une
sauvegarde un peu trop grossière.

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



Il faut voir ce que les moteurs acceptent comme arguments. Mais
de toutes façons, certains ont officiellement une politique anti-
moteur annoncée sur leur site. Un des buts c'est de réduire la
pollution de leur moteur avec du spam (quoi que certains moteurs
semblent encourager ce type de pollution), ce spam étant par
exemple une sélection de 10 sites avec telle sélection de mots.

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.



Oui mais comme le dit Arnaud, les résultats sont parfois différents
des résultats obtenus avec le navigateur.

Par contre, je pense que certains moteurs alternent les 10 ou 20
premiers résultats selon l'heure. Quand j'ai acheté de la pub
adwords, j'ai regardé les résultats pour voir si ma pub sortait
et j'ai constaté que les résultats (pas la pub mais les liens
trouvés) variaient au lieu d'être fixes. C'est peut-être une
question de sujet de recherche.



Oui c'est aussi un moyen _volontaire_ des moteurs pour éviter de se
faire pomper les résultats de requêtes par des concurrents et que
ces derniers puissent affiner leurs propres algorithmes.

--
Antoine
Avatar
Denis Beauregard
Le 24 Apr 2008 19:43:58 GMT, Antoine
écrivait dans fr.comp.infosystemes.www.auteurs:

Denis Beauregard
wrote :

Le 24 Apr 2008 16:33:41 GMT, Antoine
écrivait dans fr.comp.infosystemes.www.auteurs:

Plusieurs FAI font (faisaient ?) partager une même adresse IP à
plusieurs clients ; AOL utilisait ce genre de proxies.



Mais ces IP sont connues.



Il est possible de connaître ces IPs ; tu crois vraiment que Big
Brother connaît tous les FAI de la planète, et parmi ceux-ci ceux
qui utilisent des proxies, et parmi les proxies les adresses IP de
ces derniers (à supposer qu'elles soient non fluctuantes) ?



Tout d'abord, c'est techniquement assez facile à faire. On peut
savoir à la main quel FAI détient telle IP (via ARIN). Un gros
moteur peut sans doute acheter la liste sur une base régulière si
cela lui est utile (si c'est rentable).

Il reste à savoir si c'est rentable, c'est-à-dire si cela a une
utilité quelconque. Si le but est de détecter des pilleurs de
sites, donc de bloquer un compétiteur, oui, c'est utile.

Si c'est faisable et utile, pourquoi les gros moteurs ne le
feraient-ils pas ?

Tu as aussi le cas des sociétés/organisations_en_tout_genre qui
ont un point d'accès au net unique avec une IP unique et parfois
plusieurs miliers d'utilisateurs derrière, pas tous équipés du
même navigateur. C'est exactement le cas de la boîte qui
m'emploie.



Ce qui implique que tu utilises une IP déjà connues pour abriter
un grand nombre d'utilisateurs différents.



Oui et justement on peut l'exploiter pour automatiser le processus
décrit par Arnaud en faisant varier, donc de façon très réaliste, le
UA.



Effectivement. Mais est-ce que Mihamina a un tel FAI ? Il est isolé
par rapport au reste des participants. Par contre, un site exerce en
général une certaine attraction sur les visiteurs de sa région, donc
il doit pouvoir déterminer si son FAI utilise toujours la même IP.
Et puisqu'il a parlé tout de suite de proxy, on peut supposer que
ce n'est pas le cas et qu'il serait donc identifiable par le moteur.

Je ne te le fais pas dire ! Je perds rarement des données ou
programmes ; je m'en suis voulu sur ce coup.



Faut faire une sauvegarde complète au moins une fois l'an.



Ahum, tu prêches un convaincu. Le script a été écrasé lors d'une
sauvegarde un peu trop grossière.



Ouais, toujours ce problème de nettoyer un peu avant de sauvegarder...
Cela m'arrive aussi.

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



Il faut voir ce que les moteurs acceptent comme arguments. Mais
de toutes façons, certains ont officiellement une politique anti-
moteur annoncée sur leur site. Un des buts c'est de réduire la
pollution de leur moteur avec du spam (quoi que certains moteurs
semblent encourager ce type de pollution), ce spam étant par
exemple une sélection de 10 sites avec telle sélection de mots.

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.



Oui mais comme le dit Arnaud, les résultats sont parfois différents
des résultats obtenus avec le navigateur.



Même sans changer de navigateur on peut obtenir des résultats
différents.

On peut aussi se faire une idée avec http://google-dance-tool.com/
qui compare les résultats de 18 adresses de Google. Je me rappelle
d'un autre site qui comparait les résultats selon différents proxys.

Par contre, je pense que certains moteurs alternent les 10 ou 20
premiers résultats selon l'heure. Quand j'ai acheté de la pub
adwords, j'ai regardé les résultats pour voir si ma pub sortait
et j'ai constaté que les résultats (pas la pub mais les liens
trouvés) variaient au lieu d'être fixes. C'est peut-être une
question de sujet de recherche.



Oui c'est aussi un moyen _volontaire_ des moteurs pour éviter de se
faire pomper les résultats de requêtes par des concurrents et que
ces derniers puissent affiner leurs propres algorithmes.



Mais c'est récent il me semble (en tous cas, chez Google). L'an
dernier, je pense que les résultats étaient plus stables. De plus,
cela fait des années qu'il y a des métasites ou des outils qui
combinent les résultats de plusieurs moteurs (comme Copernic ou Mamma)
et qui le font ouvertement. En fait, je n'ai remarqué cela que chez
Google. Par contre, je me demande si c'est vraiment utile puisqu'il
suffit de pomper une seule fois le résultat. Dans le cas de requêtes
répétées et différentes, un moteur devrait rapidement analyser l'IP
(via ARIN) pour savoir si c'est un compétiteur, un individu qui veut
vérifier si les résultats sont stables, un client adword qui veut
voir ses annonces, etc.


Denis
1 2