Script de crawl en php

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par @routaym, 3 Août 2015.

  1. @routaym
    @routaym Nouveau WRInaute
    Inscrit:
    3 Août 2015
    Messages:
    6
    J'aime reçus:
    0
    bonjour tt le monde !! je suis entrain de rediger un script php qui me permettrait de faire les choses suivants :
    1)crawler d'un site internet
    2)extraire tous les liens externes et invalides(404 not found)
    3)mettre le resultat dans la bdd
    voilà c que j'écrit
    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');  
    // 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 />"; 
    	
         
            
        $home_url = parse_url($DocInfo->url ,PHP_URL_HOST ); 
    	 
        $file = @file_get_contents($DocInfo->url);
    	  
        preg_match_all('/<a.*?href\s*=\s*["\']([^"\']+)[^>]*>.*?<\/a>/si', $file, $urls);
       # Affichage
          
    	 echo '<br/>';
    	 
    	 
    	 
         foreach($urls as $url){
         for($i=0;$i<sizeof($url);$i++){
    	 
    	  
    	 $link_url = parse_url( $url[$i],PHP_URL_HOST ); 
    	  //and !is_valid_url($url[$i])
    	 
    	     if (($link_url != $home_url)and is_valid_url($url[$i])) {
    	         
    	         echo '1'.$lb ; 
    	         echo " Page requested:  ".$DocInfo->url." (".$DocInfo->http_status_code.")".$lb; 
                 echo '<br/>';
                 echo "<font color=green >"."lien externe : ".$url[$i].$lb."</font>";
    			 echo '<br/>';
    			 flush();
    			
    	    }
          //if (!in_array($url,$tab)){
            //array_push($tab,$url);
            // }	
    	  }
    	}
    	
       }
     }
    }
    $crawler = new MyCrawler(); 
    $crawler->setURL("http://tunisie-web.org"); 
     
    $crawler->addURLFilterRule("#\.(jpg|gif|png|pdf|jpeg|css|js)$#i"); 
    $crawler->setWorkingDirectory("C:/Users/mayss/Documents/travailcrawl/"); 
    $crawler->go(); 
     
    ?>
    2.php
    Code:
     <?php
     function is_valid_url($url){
      
     $array = @get_headers($url);//@ pour ne pas afficher l'erreur
    
      $string = $array[0];
    
      if(strpos($string,"404 Not found")) {
          return true;
      } else {
         return false;
      }
     }
     
     ?>
    la 3eme tache pas resolu :( , mais le resultat de l'execution n'est pas suffisante ,il ne fait pa ce que je veux :/
     
  2. loubet
    loubet WRInaute impliqué
    Inscrit:
    19 Février 2003
    Messages:
    792
    J'aime reçus:
    0
    c'est pas clair, le point 2 est atteint ou non ?
    car s'il est atteint le point 3 ne pose aucun problème quand on sait executer une requete sql insert
     
  3. @routaym
    @routaym Nouveau WRInaute
    Inscrit:
    3 Août 2015
    Messages:
    6
    J'aime reçus:
    0
    @loubet
    nn pas exactement , il m'affiche certes liens externes et pas ts
     
  4. loubet
    loubet WRInaute impliqué
    Inscrit:
    19 Février 2003
    Messages:
    792
    J'aime reçus:
    0
    if(strpos($string,"404 Not found")) {
    return true;
    } else {
    return false;
    }

    cela n'affiche donc que les liens en 404, pas ceux en 200 ou autre.
     
  5. @routaym
    @routaym Nouveau WRInaute
    Inscrit:
    3 Août 2015
    Messages:
    6
    J'aime reçus:
    0
    wi , je voulais dire qu'il m'affiche quelques liens externes et invalides :D
     
Chargement...
Similar Threads - Script crawl php Forum Date
Ras le bol ! Bloquer le crawling des fichiers Css et Javascript à Google Crawl et indexation Google, sitemaps 12 Septembre 2015
Script pour crawler un site Développement d'un site Web ou d'une appli mobile 28 Novembre 2014
A quel moment un crawler exécute le Javascript Débuter en référencement 23 Avril 2012
Javascript et preloader Référencement Google 16 Septembre 2021
Actualiser un script php toutes les 10 secondes Développement d'un site Web ou d'une appli mobile 6 Septembre 2021
Javascript API cache query non url ? Développement d'un site Web ou d'une appli mobile 18 Août 2021
Meta description vide dans Google mais ok dans Bing Problèmes de référencement spécifiques à vos sites 6 Juillet 2021
Aucune inscription sur mon forum Débuter en référencement 8 Mai 2021
<noscript><link ...> du css après un <link rel="preload"... Débuter en référencement 1 Mai 2021
Comment lancer du Javascript sans html ? Développement d'un site Web ou d'une appli mobile 28 Avril 2021