Aller au contenu

Fonctionnement en theorie d'un robot ?


Toutankharton

Sujets conseillés

Bonjour,

loin de moi l'idée de concurencer google, mais je suis un petit curieux, et je voudrais savoir comment faire, si cela est possible, pour une sorte de "robot" qui visite une page, en suit les liens, puis les visites, suit les liens sur ces nouvelles pages etc...

Vous voyez ce que je veux dire ? Merci d'avance ! Je repete que je veux juste un peu de theorie sur le fonctionnement, pas forcément un script complet ^^

Lien vers le commentaire
Partager sur d’autres sites

Avec fopen de php, tu ouvre une page, et avec regex tu reperes tous les liens d'une pages et tu enregistree dans une bdd, ensuite, tu ouvres avec fopen les liens enregistrés dans ta bdd etc... et tu repetes ca...

C'est la theorie ca!

EDIT:

J'ai oublié de dire que tu dois bien sur enregistré le contenu des pages!

Modifié par yuston
Lien vers le commentaire
Partager sur d’autres sites

Parfois il faut connaître le mal pour faire le bien, alors je propose un article à bien prendre avec des pincettes, mais je pense qu'il pourra vous aider à appréhender la conception d'un moteur de recherche artisanaux comme vous pouvez en croiser tous les jours.

moteur de spam sur Google

Lien vers le commentaire
Partager sur d’autres sites

Pour éviter le 'timeout' des pages, qui se situe à 30 secondes, il sufft d'utiliser la fonction php :

set_time_limit(int sec);

où 'int sec' est le temps, en secondes, pendant lequel on autorise l'execution d'un script.

Ainsi :

set_time_limit(60);

fait marcher un script 60 secondes.

Il est ainsi possible d'executer un programme beaucoup plus longtemps qu'une simple journée. ;)

Lien vers le commentaire
Partager sur d’autres sites

Il est ainsi possible d'executer un programme beaucoup plus longtemps qu'une simple journée. ;)

<{POST_SNAPBACK}>

Dans ce cas comment faire pour que le script ne reste pas indéfiniment bloqué en attente d'une url qui ne répondrait pas? Par exemple, si une URL n'a pas répondu au bout d'une minute, enregistrer l'échec, et passer à l'url suivante.

Lien vers le commentaire
Partager sur d’autres sites

salut,

à la place de fopen, j'utilise file_get_contents()

mets un @ devant la fonction de lecture de la page et une condition: si l'ouverture de la page est possible alors on parse sinon on passe au lien suivant.

Ce type de moteur s'appelle un spider WEB car il tisse une toile en suivant les liens.

Et on peut en réaliser un simple en quelques lignes de codes PHP.

J'ai fait des tests en utilisant 2 fonctions:

la principale:

-ouvre une page,

-sauvegarde le contenu,

-cherche les liens

-demande à la 2eme fonction si le lien a déjà été suivi

-suit le lien si c'est un nouveau en rapellant la même fonction (la 1ere)

La seconde:

-stocke tout les liens visités pour dire à la première si c'est une nouvelle page ou une déjà visté.

J'ai fait les tests chez free, OVH et en local, pour analyser un site dynamique, classer et stocker les mots clefs par page et par occurence, soit environ 2000 pages, il faut 30 secondes environ.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...