|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
[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) |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Le Tue, 22 Apr 2008 14:27:13 +0300, Mihamina Rakotomandimby
<r12y@infogerance.us> é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 |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
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 ? |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Salut,
Le Tue, 22 Apr 2008 14:27:13 +0300, Mihamina Rakotomandimby a écrit ce message ( <fuki34$12i3$1@cabale.usenet-fr.net> ): > 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 ? -+- |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Olivier Masson <sisemen@laposte.net> 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 |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
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/ |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
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. |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Olivier Masson <sisemen@laposte.net> 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 |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
Le 24 Apr 2008 16:33:41 GMT, Antoine <noemail@noemail.invalid>
é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 |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
Denis Beauregard
<denis.b-at-francogene.com.invalid@nospam.com.invalid> wrote : > Le 24 Apr 2008 16:33:41 GMT, Antoine <noemail@noemail.invalid> > é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 |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
Le 24 Apr 2008 19:43:58 GMT, Antoine <noemail@noemail.invalid>
écrivait dans fr.comp.infosystemes.www.auteurs: >Denis Beauregard ><denis.b-at-francogene.com.invalid@nospam.com.invalid> wrote : > >> Le 24 Apr 2008 16:33:41 GMT, Antoine <noemail@noemail.invalid> >> é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 |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
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 size=41 maxlength=2048 value="ma recherche" title="Rechercher"> <input type=submit name="btnG" value="Rechercher"> Donc, le minimum c'est de respecter ça. |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
> 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) |
|
|
|
#14 |
|
Messages: n/a
Hébergeur: |
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. > 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 size=41 maxlength=2048 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 |
|
![]() |
| Outils de la discussion | |
|
|