GetInfo.Ru – Компьютерная библиотека
Последние поступления
Как выбрать систему управления базы данных
Базы данных03/09/14
Этапы загрузки UNIX (в схеме)
Unix27/03/12
Gatewall Antispam: тотальный контроль электронной почты
Спам21/04/11
Мастер-класс: создаем Интернет-магазин (Часть 1)
Обзоры ПО20/04/11
CorelDRAW Graphics Suite X5: Что нового?
Обзоры ПО20/07/10
Добавить статью
Самые читаемые материалы
Проверка e-mail адреса на существование(32324)
Строим календарь для сайта на Perl(11772)
Web Основы с LWP(11415)
Построение крупно-масштабного e-commerce сайта на Apache и mod_perl(11242)
Image::Magick или фотошоп для perl(9664)
Всего статей: 793Всего авторов: 364Подразделов: 47Добавлено за сутки: 0
Статьи  СТАТЬИ Форум  ФОРУМ Рейтинг  РЕЙТИНГ Поиск  ПОИСК Контакты  КОНТАКТЫ
» Главная » Perl » Библиотека WebWalker

Библиотека WebWalker


Александр Кулик
volph@appua.com
http://volph.appua.com/

Данная библиотека предоставляет возможность обхода на сайте всех ссылок. Таким образом, используя эту библиотеку Вы сможете проанализировать рекурсивно весь сайт.


Основные преимущества:
  • Простота в использовании
  • Отказоустойчивость
  • Возможность ускорения обхода ссылок путем размножения процессов
Требования:
  • Perl, MySql
  • Библиотеки DBI, DBD::MySql, LWP::Simple, LWP::UserAgent, HTML::LinkExtor

Как видно из требований, библиотека WebWalker работает с базой данных MySQL, это связано с тем, что библиотека хранит все необходимые данные для обхода сайта в таблице базы данных.


Пример использования:
	use WebWalker;

	%params = (
	        -dbName         => 'WebWalk',
	        -dbHost         => 'localhost',
	        -dbLogin        => '',
	        -dbPasswd       => '',
	        -dbTable        => 'links',
	        -ContentProcess => \&ContentProcess,
	        -LinkProcess    => \&LinkProcess,
	        -ProxyServer    => 'http://192.168.50.75:3128',
	        -Timeout        => 300,
	        -Proxy          => 'yes',
	        -URL            => 'http://volph.appua.com'
		);

	Init(%params);

	while(1) { Process(); }

	sub ContentProcess {
        
	  print @_[0];

	}

	sub LinkProcess {

	  print @_[0]."\n";
	  return @_[0];
	}

Как видно из примера, необходимо инициализировать несколько свойств и событий, а затем циклически вызывать процедуру Process().

Рассмотрим подробнее свойства и события:
  • -dbName - название базы данных (БД)
  • -dbHost - ip-адрес расположения БД
  • -dbLogin - логин БД
  • -dbPasswd - пароль БД
  • -dbTable - таблица БД, в которой библиотека будет хранить свои данные, для каждого сайта необходимо указывать разные имена
  • -ContentProcess - указатель на событие (процедуру), которое вызывается при получении контекста HTML-страницы, в качестве параметра данному событию передается собственно сам контекст страницы
  • -LinkProcess - указатель на событие (функцию), которое вызывается при нахождении в HTML-странице URL-адреса в теге <a>. В качестве параметра, передается значение атрибута href тега <a>. Если событие возвращает пустое значение, значит данная ссылка не будет обрабатывать библиотекой для обхода, иначе необходимо возвращать правильный HTTP-адрес
  • -ProxyServer - адрес прокси-сервера в виде http://address:port
  • -Timeout - таймаут в секундах
  • -Proxy - использование прокси-сервера (yes/no)
  • -URL - HTTP-адрес сайта, который необходимо рекурсивно обойти

СОВЕТ
Для ускорения процесса обхода всех ссылок на сайте, необходимо запустить параллельно несколько скриптов.

Если у Вас возникли какие то вопросы или предложения, пишите по адресу volph@appua.com. По вопросам приобретения данной библиотеки обращайтесь также по адресу volph@appua.com, оплата символическая или возможно Вы получите ее бесплатно.

 
25.02.2003
Версия для печати Версия для печати Запомнить ссылку Запомнить ссылку
Ваша оценка:  1   2   3   4   5     

 О проектеПерепечаткаАвторамПартнерыО нас пишут
Наверх
©2003—2007. GETINFO.RU. ВСЕ ПРАВА ЗАЩИЩЕНЫ.