Webmaster общности: Predpriemach.com | SearchEngines.bg

    Прост спайдър бот

    php mysql уроци

    В името на урока ще постна кода накуп, като няма да спазя правилото за отделяне на класовете от изпълнителният код (инстанциите).

    <meta http-equiv='Content-Type' content='text/html; charset= utf-8' />
    <?php
    ini_set('max_execution_time', 300);
    class SB{
    
    public function __construct(){
    
    }
    
    public function scan($siteURL){
    if($links = $this->getURLs($siteURL)){
    foreach($links as $k => $v){
    echo "<br><font color='green'>$k - ".$v.'</font><pre>';
    if($taken = $this->getURLs($v)){
    foreach($taken as $key => $url){
    echo "<br><font color='red'>$key - ".$url.'</font><pre>';
    print_r($this->getURLs($url));
    }
    }
    echo "</pre>";
    }
    }
    }
    
    private function getURLs($siteURL){
    preg_match_all('/href=\"((https?:\/\/|www\.).*?)\"/',file_get_contents($siteURL),$matches);
    if($matches[1]){
    return $matches[1];
    }
    return false;
    }
    }
    $time_start = microtime(true);
    $SB = new SB();
    $SB->scan('http://web-tourist.net/forum/');
    $time_end = microtime(true);
    $time = $time_end - $time_start;
    echo "<br><center>Време ".$time."</center>";
    
    ?>

    Драснал съм два прости метода. Методът scan() получава връзката, която трябва да обходи. Вътрешно той извиква метода getURLs() връщайки масив със съвпадащи спрямо шаблона стойности. Като цяло просто копирате, поставяте в php файл и стартирате. Кодът е много прост и честно казано няма кой знае какво за обяснение. Сканирането е направено да е на дълбочина 3 автоматични проследявания на заредениете линкове и линковете в тях.