Сайт Алексея Озерицкого

Искусственный интеллект, суперкомпьютерные системы, параллельные вычисления, численные методы, алгоритмы

Spider

Spider пригодится для скачивания сайтов. От wget и curl она отличается следующими преимуществами:

  • параллельные загрузки (насколько хватит памяти);
  • сохранение состояния с возможностью продолжить загрузку после паузы;
  • гибкая настройка правил обхода страниц и обработки их содержимого.

Распространяется по лицензии BSD из трех пунктов.

Скачать spider-2012-06-26.tar.bz2 (15 Кб)

Сборка

Для сборки Spider необходимо установить пакеты libevent и boost. Выполните следующие команды:

tar xvf spider-xxxx-xx-xx.tar.gz
cd spider-xxxx-xx-xx
cmake -DCMAKE_BUILD_TYPE=Release .
make

Использование

Образец файла конфигурации (spider.ini):

[dnl]
; Сохранять содержимое на диск? (правила для text/html)
accepted_save_url=
rejected_save_url=.*
; Только загрузка и поиск ссылок
accepted_dnl_url=http://example.com/.*
; То, что загружать не будем
rejected_dnl_url=
; Сохранять содержимое на диск? (правила для типов данных, отличных от text/html)
accepted_ctype=image/jpeg
rejected_ctype=

; Учитывать nofollow?
use_nofollow = 1
; Воспроизводить ли структуру сайта или сохранять все в одну директорию, ./out?
save_make_dirs = 0
; Заменить символ / на _
save_repl_slash = 1

; Максимум параллельных загрузок
max_downloads = 500
; Максимум параллельных загрузок на хост
max_downloads_per_host = 5
user_agent = "Spider 1.0"

Запуск:

./spider urls.txt

Где urls.txt — список ссылок, с которых мы начинаем обход.

Пример конфигурации Spider для скачивания картинок с wpapers.ru

Файл spider.ini:

[dnl]
accepted_save_url=
rejected_save_url=.*
accepted_dnl_url=(http://wpapers.ru/wallpapers/Plants/.*)
rejected_dnl_url=
accepted_ctype=image/.+
rejected_ctype=

use_nofollow = 1
save_make_dirs = 0
save_repl_slash = 1

max_downloads = 500
max_downloads_per_host = 5

Файл urls.txt:

http://wpapers.ru/wallpapers/Plants

Пример для скачивания всего интернета :)

Файл spider.ini:

[dnl]
accepted_save_url=
rejected_save_url=.*
accepted_dnl_url=.*
rejected_dnl_url=.*png|.*jpeg|.*jpg|.*gif
; save ?
accepted_ctype=
rejected_ctype=.*
;
; ; use nofollow flag in links?
use_nofollow = 1
; ; make dirs from path ?
save_make_dirs = 1
save_repl_slash = 0
;
max_downloads = 500
max_downloads_per_host = 10

Файл urls.txt:

http://www.dmoz.org