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

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

Crawler Test Bed

  1. Сборка
  2. Конфигурация
  3. Использование
  4. Лицензия

Эта программа для тестирования поискового робота случайным образом создает множество веб-страниц с перекрестными гиперссылками.

Результат работы Crawler Test Bed

Алгоритм основан на цепочках Маркова и взят из книги «Практика программирования» Б. Кернигана и Р. Пайка. Для создания хеш-таблицы префиксов использовался алгоритм идеального хеширования из второго издания книги «Алгоритмы: построение и анализ» Т. Кормена.

Гиперссылки могут быть как внутренними (http://hostname/N.html), так и внешними (http://servX.hostname/Y.html) — в том случае, если для равномерного распределения нагрузки при тестировании поискового робота используется несколько машин.

Скачать testbed-2009-03-29.tar.bz2 (352,8 Кб)

Сборка

Для сборки Crawler Test Bed необходимо установить пакет cmake. Все остальные компоненты, включая исправленную версию libevent-1.4.9, включены в дистрибутив.

Выполните следующие команды:

tar xvf testbed-xxxx-xx-xx.tar.bz2
cd testbed-xxxx-xx-xx
cmake -DCMAKE_BUILD_TYPE=Release .
make

Конфигурация

Для хранения настроек программы используется файл gen.ini. Доступны следующие параметры:

daemon_port Привязка к конкретному порту HTTP-сервера.
extern_links_probability Вероятность того, что слово станет внешней ссылкой.
Число из полуинтервала [0,1).
extern_links_prefix Префикс для создания внешних ссылок.
extern_links_suffix Суффикс для создания внешних ссылок.
extern_links_servers Количество серверов для внешних ссылок.
intern_links_probability Вероятность того, что слово станет внутренней ссылкой.
Число из интервала (0,1).
Например, если выставить 0.999, то почти все слова на странице станут ссылками.
links_total Максимальное количество ссылок на сервере.
words_per_page Максимальное количество слов на странице.
worker_threads Количество потоков.
Рекомендуется указывать значение, соответствующее числу ядер.

Пример файла настроек

[generator]
daemon_port=8083
words_per_page=500
intern_links_probability=0.1
extern_links_probability=0.02
; serv0.testbed.local
; serv1.testbed.local
extern_links_prefix=serv
extern_links_suffix=.testbed.local
extern_links_servers=2
links_total=10000000
worker_threads=2

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

Перед первым запуском программы необходимо создать директорию texts и разместить там текстовые файлы в кодировке UTF-8. Из них будут генерироваться страницы:

mkdir texts
cp *.txt texts #заполняем директорию с текстами
./bin/testbed