1. ⭐⭐⭐ Grosse PROMO en cours sur ma plateforme SEO My Ranking Metrics
    Rejeter la notice

Comment accéléer la vitesse d'un crawleur en php

Discussion dans 'Débuter en référencement' créé par @routaym, 16 Août 2015.

  1. @routaym
    @routaym Nouveau WRInaute
    Inscrit:
    3 Août 2015
    Messages:
    6
    J'aime reçus:
    0
    j'ai écrit un script en php qui fait le crawl d'un site web .mais il prend bq de tepms : environ 1h30 pour donner le resultat
    Alors comment je peux accélerer la vitesse de crawling
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    8 757
    J'aime reçus:
    234
    La question est trop vague:
    - APC/OPcache
    - Multithreading
    - Bande passante
    - Puissance de la machine
    - Parser utilisé SimpleXML vs DOMDocument
    - ...

    Xdebug a un profiler intégré pour analyser ton code.

    1h30 pour combien de pages crawlées ?
     
  3. @routaym
    @routaym Nouveau WRInaute
    Inscrit:
    3 Août 2015
    Messages:
    6
    J'aime reçus:
    0
    environ 20000pages, j'utilise le DOMDocument et je ne sais pas comment travailler avec le multithreading :/
     
  4. duchnoun38
    duchnoun38 Nouveau WRInaute
    Inscrit:
    21 Juillet 2011
    Messages:
    41
    J'aime reçus:
    0
    Multiprocess si tu ne veux pas t'embeter avec les mutex/semaphore du multithreading

    => fonction exec de php

    Pour le crawl en lui même plutot que passé par curl ou pire des file_get_contents distant , => fonction socket_select (voir phpsocketdaemon)
     
  5. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    707
    J'aime reçus:
    0
    De toute façon, c'est trop vague pour donner des précisions qui pourrait l'aider.
    - tu connais déjà les 20 000 liens ? Ou tu les récupère au fur et à mesure du crawle ?
    - c'est sur le même site ? Est-ce que ce(s) site(s) a/ont un temps de réponse rapide ?
    - qu'est-ce que tu récupères dans ces pages ?
    - qu'est-ce que tu enregistres ? Et où ? (mysql, fichier, etc.).
    - quelle version de PHP utilises-tu ? (bien qu'en beta, j'ai pu faire des tests avec PHP 7 qui a triplé voir quadruplé un système d'analyse de fichier, vraiment impressionnant).

    Bref, fait nous un retour complet de ton existant, et le code aussi.
     
  6. @routaym
    @routaym Nouveau WRInaute
    Inscrit:
    3 Août 2015
    Messages:
    6
    J'aime reçus:
    0
    @Blount
    bon !
    1-j'ai tésté avec le Xenu : il m'a indiqué le nombre des pages internes traités
    2-le but de mon script est d'extraire tous les liens externes et morts (erreur 404) inclus dans les pages d'un site (son url donné en entrée)
    3-j'utilise le php 5.4.12
    4- l'affichage sur l'ecran
    c mon code
    exter.php
    Code:
    <?php 
    
    // It may take a whils to spider a website ... 
       set_time_limit(10000); 
    
    // Inculde the phpcrawl-mainclass 
    include_once('../PHPCrawl_083/PHPCrawl_083/libs/PHPCrawler.class.php'); 
     include ('2.php');  
     //include ('crawl3.php');
    // Extend the class and override the handleDocumentInfo()-method 
     
    class MyCrawler extends PHPCrawler 
    
    {   
    function handleDocumentInfo(PHPCrawlerDocumentInfo $DocInfo) {
    
        if (PHP_SAPI == "cli") $lb = "\n"; 
        else {
    	$lb = "<br />"; 
    	 $html = @file_get_contents($DocInfo->url);
    	 $home_url = parse_url($DocInfo->url ,PHP_URL_HOST );
          $doc = new DOMDocument;
    	 libxml_use_internal_errors(true);
         $doc->loadHTML($html);
    	 libxml_clear_errors();
    	  
    
    // Drop the ->item(0)
    $links = $doc->getElementsByTagName('a');
    
    foreach ($links as $link){
         
    	//if (substr($link->getAttribute('href'),0,7) == "http://"  and is_valid_url($link->getAttribute('href') === false)){
    	$link_url = parse_url($link->getAttribute('href') ,PHP_URL_HOST );
    	 
    	if (($link_url !== $home_url) and is_valid_url($link->getAttribute('href')) === false ){
        echo $link->getAttribute('href'), PHP_EOL."<br/>";
    	echo '<a href = "'.$link->getAttribute('href').'" TARGET=_blank.>'.$link->nodeValue.'</a>'.'<br/>';
    	 
    	}
    	 
    }
    
    	 
          
       }
     }
    }
    $crawler = new MyCrawler(); 
    $crawler->setURL("http://www.tunisie-web.org/"); 
     
    $crawler->addURLFilterRule("#\.(jpg|gif|png|pdf|jpeg|css|js)$#i"); 
    $crawler->setWorkingDirectory("C:/Users/mayss/Documents/travailcrawl/"); 
    $crawler->go(); 
    //httpwww.annuaire-ag.com
    //
     
    ?>
    
    la foction is_valid_url : (script 2.php)
    Code:
     <?php
     
       function is_valid_url($url) {
      $resURL = curl_init();
    curl_setopt($resURL, CURLOPT_URL, $url);
     curl_setopt($resURL, CURLOPT_BINARYTRANSFER, 1);
     curl_setopt($resURL, CURLOPT_HEADERFUNCTION, 'curlHeaderCallback');
     curl_setopt($resURL, CURLOPT_FAILONERROR, 1);
    curl_exec ($resURL);
    $intReturnCode = curl_getinfo($resURL, CURLINFO_HTTP_CODE);
    curl_close ($resURL);
    if ($intReturnCode == 404) {
        return false;
     }
     else return true;
     }
     
     ?>
    
     
Chargement...
Similar Threads - accéléer vitesse crawleur Forum Date
comment acceléer l'indexation de ce site ? Crawl et indexation Google, sitemaps 25 Novembre 2010
Site lent, comment améliorer la vitesse ? Développement d'un site Web ou d'une appli mobile 15 Juin 2019
Quel outil fiable pour tester la vitesse du site? Référencement Google 2 Février 2019
WordPress Améliorer la vitesse d'indexation des articles ? Référencement Google 19 Décembre 2018
Vitesse du site : Quel outil est vraiment fiable ? Techniques avancées de référencement 29 Novembre 2018
La vitesse, oui. Mais côté utilisateur c'est mieux. CrUX ... Référencement Google 9 Novembre 2018
Optimiser la vitesse d'une galerie GIF sur Wordpress Administration d'un site Web 21 Août 2018
Données de vitesse absentes de Google Analytics avec mon script personnalisé Google Analytics 27 Juillet 2018
Google Measurement Protocol : vitesse à zéro ? Google Analytics 1 Juin 2018
Speed Update : la vitesse sur mobile, facteur de positionnement Référencement Google 19 Janvier 2018
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice