Насколько сложно написать краулер?

Тема в разделе "PHP", создана пользователем Altair-Z, 4 июл 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Altair-Z

    Altair-Z Создатель

    Регистр.:
    10 май 2010
    Сообщения:
    30
    Симпатии:
    1
    Хочется написать паука который будет идти на указанный сайт, погуляет по ссылкам, и сохранит страницы в текстовом виде в папке возле себя.
    Вопрос: насколько это сложно?
    может у кого есть такой скриптик?:)

    пс. Где-то видел на нулледе скрипт поисковой системы, но это слишком круто
     
  2. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    А какой вы ответ хотите? Типа сложно, не беритесь?


    Типа телепорта в серверном виде нужно?
     
  3. Altair-Z

    Altair-Z Создатель

    Регистр.:
    10 май 2010
    Сообщения:
    30
    Симпатии:
    1
    Ну например с помощью курла можно заставить скрипт пойти на сайт и заполнить форму (во многих реггерах реализовано)
    а как заставить его гулять по ссылкам, и сохранять текст с сайта? Именно текст, а не всю страницу целеком.
     
  4. komyak

    komyak

    Регистр.:
    4 фев 2009
    Сообщения:
    484
    Симпатии:
    185
    А чем TextMaker не устраивает?
     
  5. Google.com

    Google.com Читатель

    Заблокирован
    Регистр.:
    16 фев 2010
    Сообщения:
    250
    Симпатии:
    295
    Первым делом нужно отделить шаб от контента. Т.е. определяются одинаковые части хтмл кода на нескольких страницах сайта. То что меняется - контент, остальное - шаб.
    Но тут много нюансов, к примеру если на одном сайте большинство страниц имеют разную структуру.
     
  6. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    Текст именно смыслового содержания - никак. А просто весь текст легко. Тупо получаете хтмл код с помощью курла и удаляете все теги с помощью, например, strip_tags().
    Ну сохранять думаю не проблема, а вот насчёт гуляния по ссылкам - перед удалением тегов спарсите все ссылки и найдите внутринние - затем цикл по ним с теми же операциями.
     
  7. EFL

    EFL

    Регистр.:
    31 июл 2008
    Сообщения:
    153
    Симпатии:
    56
    Парсим все ссылки с главной страницы, переходим по ним, парсим ссылки с этих страниц, переходим по ним и так пока страницы не кончатся. А чтобы они кончились нужно те урлы по которым уже скрипт пробегал заносить в БД, массив, или тхт файл к примеру.

    Для парсинга элементов страницы(ссылок текста) можно использовать либу http://simplehtmldom.sourceforge.net/.
    С ней можно настроить парсинг любой сложности
     
  8. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    С этой либой были некоторые проблемы с парсингом невалидных страниц.
    А вот регулярка для выдирания всех ссылок со страницы.
    Код:
    ~<a.*?href="([^"]+)".*?>(.*?)</a>~s
     
  9. Altair-Z

    Altair-Z Создатель

    Регистр.:
    10 май 2010
    Сообщения:
    30
    Симпатии:
    1
    За регулярку спасибо
    вот нашел стройматериалы у буржуев (допиливать час-два), и функций полно и реализация не сложная
    допилю - выложу, может пригодится кому)
     
  10. EFL

    EFL

    Регистр.:
    31 июл 2008
    Сообщения:
    153
    Симпатии:
    56
    Есть пример страницы? За пол года использования пока-что косяков не находил
     
Статус темы:
Закрыта.