Toutankharton Posté 8 Octobre 2005 Posté 8 Octobre 2005 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
yuston Posté 8 Octobre 2005 Posté 8 Octobre 2005 (modifié) 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é 8 Octobre 2005 par yuston
thick Posté 8 Octobre 2005 Posté 8 Octobre 2005 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
Toutankharton Posté 8 Octobre 2005 Auteur Posté 8 Octobre 2005 ok merci mais comment faire pour un enregistrement continu des pges ? Il y a toujours un timeout sur les script (du moins sur des serveurs mutualisé)
Anonymus Posté 8 Octobre 2005 Posté 8 Octobre 2005 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.
Jan Posté 8 Octobre 2005 Posté 8 Octobre 2005 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.
rat-du-net Posté 9 Octobre 2005 Posté 9 Octobre 2005 peut etre que le php n'est pas approprié pour faire un moteur de recherche aussi
Duxmachine Posté 9 Octobre 2005 Posté 9 Octobre 2005 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.
petit-ourson Posté 9 Octobre 2005 Posté 9 Octobre 2005 Tu as fait des test sous ovh sur un site qui se trouvais également sur ovh ou un site sur un serveur distant ? Cela ne me semble pas beaucoup 30 secondes pour 2000 pages.
Duxmachine Posté 9 Octobre 2005 Posté 9 Octobre 2005 Testé sur plusieurs centaines de sites dans le monde. Et ce moteur de recherche est maintenant présent sur plusieurs sites et fonctionne bien.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant