Creation d'un bot analyseur

  • Auteur de la discussion Auteur de la discussion scores
  • Date de début Date de début
WRInaute occasionnel
Salut,
pour être clair,
je cherche à créer un bot, qui a partir d'une liste de liens externes dans ma table, va analyser le contenu de chaque lien (sites externe au mien).

Le bot aurait la fonction de detecter un type de phrase du genre "ce produit n'existe plus".

si le bot detecte cette phrase, alors il effecerait la ligne correspondante dans ma table.

Je suis completement ignard dans le domaine des bots. Si quelqu'un a une piste de départ à me fournir, un script approchant (php si possible), ca serait coool !

merci
 
WRInaute impliqué
Tu analyses d'abord le code html des pages à analyser, t'essaies de trouver un truc qu'il n'y a que sur les pages où le produit n'existe plus.
Après tu fais un file_get_contents et avec des regexp tu analyses le code. Si ca renvoie true > tu garde, si ca renvoie false > tu jette ;)
 
WRInaute occasionnel
salut merci loletech pour ta référence.

merci mowmow, ouais la démarche je l'ai bien identifié c'est bien cela, mais ce n'est pas la démarche le problème, c'est le moyen de le faire.

Surtout "Tu analyses d'abord le code html des pages à analyser",
c'est surtout cela, je ne sais pas comment faire
 
WRInaute impliqué
Affichage > Source :mrgreen:

Tu dois répérer un certains enchaînement de code html, pour répérer l'endroit précis. Mais bon c'est pas obligé, après tu peux juste vérifier l'existance de la chîne "ce produit n'existe plus" pour être fixé.
 
WRInaute occasionnel
Excellent merci mowmow
j'ai pu trouver des pistes qui m'a amener à ce script

<?

$selection="requete pour lister les produits'";
$resultdeux = mysql_db_query($free_login,$selection);
WHILE ($post2=mysql_fetch_array($resultdeux))
{
$fp = fopen("". $post2["url"] ."", "r"); // page html sur internet
$chaine = 'phrase à detecter'; // chaine à rechercher (@, \.fr, \.com, ...)
$ligne=0;
while (!feof($fp))
{ $page = fgets($fp, 4096);
$ligne = $ligne+1;
if ($news = eregi($chaine, $page, $regs)) {
echo "PRODUIT n° ". $post2["clef"] ."<br>";
}
}

}

?>
 
WRInaute occasionnel
Malheuresement c'est un peu lourdo comme méthode,
ya pas moyen d'alleger le chargement de la page cible (genre ne telecharger que le numero de la ligne identifiée contenant la phrase cherchée ?)
 
WRInaute accro
scores a dit:
Malheuresement c'est un peu lourdo comme méthode,
ya pas moyen d'alleger le chargement de la page cible (genre ne telecharger que le numero de la ligne identifiée contenant la phrase cherchée ?)

Non, il faut charder par file_get_contents puis analyser.
 
WRInaute occasionnel
j'ai remplacé

$fp = fopen("". $post2["url"] ."", "r");
$chaine = 'phrase à detecter';
if ($news = eregi($chaine, $page, $regs)) {


par

$fp = file_get_contents("". $post2["url"] .""); // page html sur internet
$chaine = 'phrase à detecter';
if ($news = eregi($chaine,$fp))

ca marche, mais ca ne change strcitement rien à la lourdeur du truc. J'ai cherché voir si y'avait pas des délimiteurs pour file_get_contents, mais j'arrive pas à m'en servir
 
WRInaute passionné
renseigne toi sur la librairie curl tu peut l'utiliser si elle est installer comme extention de php elle permet de simuler un navigateur ou un robot ...

sous PHP les fonction de cette librairie commancent toutes par curl_ : curl_setopt, curl_exec, curl_close
 
Discussions similaires
Haut