IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Crawl en PHP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 24
    Points
    24
    Par défaut [Tableaux] Crawl en PHP
    voilla j ai trouvé ca sur google c'est un crawl on doit mettre une adresse de depart dans l'index.html qui est là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     index.html
    {
    <html>
    <head>
    <title>Zinsearchbot - Robot d'indexation en php</title>
    <body>
    <div align="center">
    <br/><br/>
    <font face="Arial" size="2" color="black">Veuillez fournir une adresse de départ</font>
    <form action="zinsearchbot.php" method="GET">
    <input type="text" name="site" value="http://" size="60" />&nbsp;
    <input type="submit" value="Indexer" />
    </form><br/>
    <font face="Arial" size="1" color="black">Copyright Zinystral. Nom du robot : Zinsearchbot</font>
    </div>
    </body>
    </html>
    }
    qui lui envoie les données via le script là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
     {
     
    <html>
    <head>
    <title>Robot d'indexation Zinsearchbot</title>
    </head>
    <body>
    <?php
    if(empty($_GET['site']))
    {
    $site='http://www.yahoo.fr';
    }
    else
    {
    $site=$_GET['site'];
    }
     
    $code = file_get_contents($all);
    $code = preg_replace('!'.$site.'!isU', '', $code);
    preg_match('!<title>(.+)</title>!isU', $code, $title);
    preg_match_all('!<a href="http://%5BA-Za-z0-9%5D" target="_blank">http://[A-Za-z0-9]</a>[A-Za-z0-9\-\.]+[A-Za-z0-9]\.[A-Za-z]{2,}[\43-\176]*+!isU', $code, $lien);
    preg_match('!<meta name="description" content="(.+)"(.+)>!isU', $code, $description);
    preg_match('!<meta name="keywords" content="(.+)"(.+)>!isU', $code, $clee);
     
    $nb=count($lien[0]);
     
    if(empty($title) || empty($description) || empty($clee) || $title[0] == '' || $description[0] == '' || $clee[0] == '')
    {
    echo'&bull; <font color="red">Une des balises n\'est pas fournie.</font><br/><br/>';
    }
    else
    {
     
    $title[0] = preg_replace('!<title>(.+)</title>!isU', '$1', $title[0]);
    $description[0] = preg_replace('!<meta name="description" content="(.+)"(.+)>!isU', '$1', $description[0]);
    $clee[0] = preg_replace('!<meta name="keywords" content="(.+)"(.+)>!isU', '$1', $clee[0]);
     
     
    echo'&bull; <font color="red">Meta title : </font> '.$title[0].'';
    echo'<br /><br />';
    echo'&bull; <font color="red">Meta description :</font> '.$description[0].'';
    echo'<br /><br />';
    echo'&bull; <font color="red">Meta keywords :</font> '.$clee[0].'<br/><br/>';
     
     
     
    $date=date('d/m/y');
    include('mysql.php'); 
    mysql_connect($host, $base, $passe);
    mysql_select_db($db);
    $requete = mysql_query("SELECT id,titre,description,adresse,key,source,date,ps FROM sites_annuaire WHERE adresse='$site'");
    $reponse = mysql_num_rows($requete);
     
    if($reponse == '0')
    {
    mysql_query("INSERT INTO sites_annuaire VALUES ('', '$title[0]', '$description[0]', '$site', '$clee[0]', '$date', '1')");
    }
    else
    {
    while ($donnes = mysql_fetch_array($requete) )
    {
    if($site == ''.$donnes['adresse'].'')
    {
    echo'@';
    }
    else
    {
    $ps=$donnes['ps'];
    $ps_=$ps+1;
    $requete_ = mysql_query("UPDATE sites_annuaire SET ps = '$ps_' WHERE adresse = '$site'");
    }
    }
    }
    mysql_close();
     
     
    }
    if(empty($lien[0]))
    {
    echo'&bull; <font color="red">Aucun lien aproprié n\'a été trouvé.</font><br/>
     <form action="" method="GET"><input type="text" name="site" value="'.$site.'" size="117" /> <input type="submit" value="OK" /></form>
    ';
    }
    else
    {
    $aleatoire=rand(1, $nb);
    $_lien=$lien[0][$aleatoire];
     
    echo'&bull; <font color="red">Lien suivant : </font> '.$_lien.'<br/><br/>';
    echo'&bull; <font color="red">Nombre de liens : </font>'.$nb.'<br/><br/>';
     
     
     
     
    echo"<script language=\"JavaScript\">
    setTimeout(\"window.location='zinsearchbot.php?site=$_lien'\",300); 
    </script>";
     
     
     
    }
    ?>
    <br/><br/>
    <?php
    if(!empty($lien))
    {
    ?>
    <div align="center"><font style="color:green; font-family:Arial;"><strong>Chargement...</strong></font></div>
    <?php
    }
    else
    {
    ?>
    <div align="center"><font style="color:green; font-family:Arial;"><strong>Indexation stoppée...</strong></font></div>
    <?php
    }
    ?>
    <br ><div align="center"><a href="index.php" style="color:red; text-decoration:none">X Stopper</a></div>
    </body>
    </html>
    }
    mais il se trouve qu'il y a des erreurs et ne connaissant pas le php, je cherche quelqu'un qui trouvera ces erreurs.
    Voilà j'espère trouver quelqu'un qui saura réparer ou trouver les erreurs.Le script a été conçu pour un moteur de recherche et scanne toutes les adresses du site de départ mais s'arrete dès qu'il tombe sur une page 404. Est-il possible de faire qu'il recherche un autre lien ? Il est possible que j'installe le script pour les personnes qui voudront m'aider et qui veulent voir les erreurs

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    C'est quoi les erreurs ? ce serait plus sympa pour y travailler

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 24
    Points
    24
    Par défaut tester
    voilla tu peux le teste a cette adresse ici


    tumet une adresse et tu lace le truc

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    J'imagine que tu n'as pas suivi la procédure de création de la table dans ta base de données. Vu que le script ne gère pas les erreurs, il ne t'en informe pas.
    Tu peux télécharger mon crawler ici (pas besoin de base de données) : http://g-rossolini.developpez.com/tu...ge=page_1#LI-C

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 24
    Points
    24
    Par défaut crawl en php
    merci mes peut tu m expliquer .
    comment je vais ajoutee les lien trouvé avec ton crawl dans la base de donnee de mon moteur de recherche qui se trouve la si tu veux le voir ici

    tu peux aller tester ton spiderla
    avec moi il ne marche pas .!!!!

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Euh

    Si tu comptes créer un nouveau Google, je préfère t'avertir que tu auras besoin de quantités gigantesques d'espace disque et de bande passante. Cela va te coûter une fortune. As-tu fait une étude des coûts générés et des revenus attendus ?

    De plus, les crawlers que tu trouveras ici et là sur le Net ne te permettront pas d'arriver à tes fins aussi simplement. Par exemple, celui que je t'ai proposé ci-dessus ne gère pas le fichier robot.txt et celui de CS est trop facile à faire planter.
    Non, vraiment, je ne veux pas être blessant mais je crains que tu ne te sois embarqué dans quelque chose de trop gros pour toi.

    Tu peux toujours essayer les programmes tels que Google Free si tu souhaites simplement inclure un moteur de recherche à ton site.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 26
    Points : 24
    Points
    24
    Par défaut
    non je souhaite lancer 1 moteur de recherche qui index des site mes pas concurencer google le cout se nes rien . je verais bien se que sa donne si sa marche on verras bien a se moment la .
    pour ton script a tu regarder quil ne fonctionné pas ??

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Points : 29
    Points
    29
    Par défaut CRAWL etc..
    Bon j'envisage de créer un moteur de recherche dédié à un thématique et je me pose pas mal de question :

    1) Php est t'il un language bien adapté pour effectuer le crawling d'un site ?

    2) Est il possible de se passer des REGEX qui ralentisse considérablement à mon avis le crawl ?

    3) Est t'il possible d'extraire les libéllés des liens par exemple dans une table multiple de forme [links][adresse ex www.bizu.fr] en faisant correspondre l'adresse du lien et son libellé.Je ne voit pas comment y arriver avec preg_match_all .... et deplus sans regex :-)

    4) Est il possible de suivre les liens java complexes ? Par exemple pour courcircuiter une redirection plus savante que window.open.

    5)Enfin arfff.. c bientôt fini j'ai fait un crawl avec des tables sql mais le script de yoggi s'avère 30% plus rapide (à REGEX équivalentes) est-ce que les tables sont un meilleur choix pour le tratitement des informations temporaire du crawling ? (En terme de rapidité).

    Merci encore de répondre à ces questionsqui peuvent sembler confuse tant je réfléchi sans être fixé sur les choix à adopter.

    Enfin pourquoi je comprend rien à AJAX +> Réponse parce que je suis pas monsieur propre....ok =>

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    La tendance mondiale est, plutôt que de réinventer la roue, de réutiliser l'existant : cela permet de gagner un temps phénoménal.
    Connais-tu Custom Search Engine ?

    [Edit] Mon script cité plus haut n'est pas un crawler : c'est une démonstration rapide et incomplète de comment peut fonctionner un crawler. Il ne doit pas être utilisé en production.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    Oui je connais déjà co-ops......

    Malheureusement cela ne correspond pas du tout au produit finis que je désire tant en terme de résultat que de fonctionnement.

    J'ai bien conscience que c'est surement réinventer la roue mais sinon on choisirait tous Xoop ou autre pour créer un site non ?

    Sinon à par ça ? un piste ?

    [EDIT]ne t'inquiète pas pour la mise en production lol[EDIT]

  11. #11
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    1. Pourquoi pas ?
    2. Bien entendu, mais tu vas galérer
    3. Oui, cf. ces tutos : Les expressions régulières et Réécriture de liens (URL Rewriting) (pour la démonstration) ; par contre, preg_match_all() sans regex, c'est impossible, il faudrait utiliser une autre fonction pour les éviter (cf. point précédent)
    4. Pas les liens Java mais les liens Javascript, oui, et je te laisse chercher
    5. La base de données n'est qu'un moyen pratique de stocker l'information ; pour un moyen rapide, utilise des tableaux de variables ; pour un moyen intermédiaire, utilise SQLite


    Mon gros conseil : réfléchis bien et longtemps avant de te lancer là-dedans, je suis sûr que tu n'as pas besoin de le faire.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Points : 29
    Points
    29
    Par défaut Crawl
    Ha ha je savais bien que Yogui allait finir par répondre car je sais qu'un modo à horreur d'un post sans réponse

    Bon je vais faire quelques recherches sur les points que tu m'a donné et je revient la semaine prochaine avec de nouvelles questions. Merci encore.

  13. #13
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Note que je ne répondrai pas à toutes tes questions... Nous avons des cours, une FAQ et des sources : utilise-les

Discussions similaires

  1. [Tableaux] Recherche code php
    Par VFone dans le forum Langage
    Réponses: 7
    Dernier message: 28/03/2006, 16h11
  2. [Tableaux] imprimer en php
    Par ph_anrys dans le forum Langage
    Réponses: 3
    Dernier message: 21/03/2006, 15h40
  3. [Tableaux] comparaison numerique php
    Par kamel_leon dans le forum Langage
    Réponses: 8
    Dernier message: 08/03/2006, 14h35
  4. [Tableaux] debutant en php
    Par herve_911 dans le forum Langage
    Réponses: 8
    Dernier message: 22/02/2006, 02h19
  5. [Tableaux] tableau en php
    Par fulgaro dans le forum Langage
    Réponses: 1
    Dernier message: 09/02/2006, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo