Помогите мне сделать web-паучка

Discussion in 'PHP' started by MafiaBoy3, 14 Jul 2008.

  1. MafiaBoy3

    MafiaBoy3 Banned

    Joined:
    14 Apr 2007
    Messages:
    295
    Likes Received:
    15
    Reputations:
    1
    Как обычно GOOGLIL но нифига не нашол.

    Как на php + mysql можно сделать простого паучка, который бы работал по следующему алгоритму:
    1. Получить ссылку на ресурс.
    2. Паук заходит на сайт и собирает ссылки на все страницы.
    3. По найденным ссылкам на страницы он добавляет найденный материал (текст страницы)
    в базу данных Mysql.


    Помогите , просто даже не знаю с чего начать.
     
  2. diehard

    diehard Elder - Старейшина

    Joined:
    30 Sep 2007
    Messages:
    442
    Likes Received:
    266
    Reputations:
    15
    начни с чтения по темам:
    Сокеты + регулярные выражения + Insert Into
     
  3. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Посмотри скрипт который писал NOmeR1
    /threadnav65761-36-10.html
     
    1 person likes this.
  4. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Мало понял из того что ТС написал....непонятно откуда получать ссылку на ресурс, какую именно инфу сохранять и т.д....
    Вот самый простейший пример:
    PHP:
    <?php
    #Подключаем БД
    mysql_connect('localhost''user''pass') or die('No connect');
    mysql_select_db('mysql') or die('No connect');
    #Откуда-то получаем ссылку на ресурс
    $site 'site.ru';
    #Хапаем код сайта
    $content file_get_contents($site);
    #Парсим ссылки
    preg_match_all('/<a href="(.+)" (.+)<\/a>/'$content$links);
    #Ходим по ссылкам и сохраняем инфу в БД
    foreach($links[1] as $link){
            
    #Получаем инфу с сайта
        
    $str file_get_contents($link);
            
    #Заносим в БД
        
    mysql_query('INSERT INTO `table` VALUE(null, '.$str.')');
        
    mysql_close();
    }
    ?>
    Более того готовый скрипт парсинга выложили выше, тебе только доработать под себя....не забывай только проверять на абсолютные и относительные ссылки.
     
    2 people like this.
  5. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    если я правильно понял, то алгоритм такой:
    1) даёш паучку ссайт
    2) он берёт с него все ссылки и
    2.1)добавляет в бд
    2.2)переходит по ним. далее к п.2

    хотя может тебе просто нужен поисковый двиг... =\
     
  6. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Хм...по этому алгоритму оно может нихреново зациклиться :))))
     
  7. Whirt

    Whirt Elder - Старейшина

    Joined:
    24 Jun 2008
    Messages:
    23
    Likes Received:
    86
    Reputations:
    5
    +1, поэтому нужно составить карту ссылок, исключающую дубликаты, иначе будет вечный цикл. Так же опционально можно сделать фильтр глубины, чтобы уменьшить число итераций (допустим обрабатываются ссылки на 3 уровня вниз, обрабатываются ссылки только с данного домена, etc.)
     
    1 person likes this.