-
-
-
- Примеры
- API
Это старая версия документа!
/* Работа с классом достаточно проста, хоть и кажется сложной с первого взляда. класс циклически переходит по ссылкам в пределах хоста начиная с указаной в аргументе функции parse(). Ссылки выбираются только те, что соответствуют правилам перехода: urlAllow, urlAllowRegexp, urlDenyAllow, urlDenyRegexp. Для каждой страницы сайта создается объект mlq и вызывается функция указаная в аргументе handler(). */ include('./lib/ml.php'); //подключаем класс mlq include('./lib/parser.php'); //подключаем класс site_parser function myfunction($parser) { echo $parser->host; //текущий хост echo $parser->url; //текущий url $ml = $parser->ml; //объект ml для данной страницы //делаем выборку элементов см. mlq $titile = $ml->select('h1')->text(); $src = $ml->select('img')->attr('src'); $parser->csv_set('title',$title); //записываем строку в csv $image = $parser->download($src,'images'); //Скачивает файл по ссылке в папку images. Возвращает имя файла в папке $parser->csv_set('image', $image); //записываем строку в csv $parser->csv_next(); //следующая строка csv. необязательно вызывать, если один вызов функции обрабатывает одну строку csv return true; } $parser = new site_parser(); $parser->handler('myfunction'); //функция вызываемая каждый раз для обработки страницы $parser->set_codepage('cp1251'); //кодировка сайта $parser->urlAllow('/product/si'); //разрешенные url $parser->urlAllowRegexp('/product/si'); //разрешенные url regexp $parser->urlDeny('/product/'); //запрещенные url regexp $parser->urlDenyRegexp('/product/si'); //запрещенные url regexp $parser->parse('http://www.site.ru','/path/to/start'); //запуск парсинга с данной страницы $parser->csv_save('items.csv'); //сохраняем csv в items.csv
Основные функции void set_codepage(string codepage) - выбор кодировки сайта void parse_page(string host, string url) - парсинг страницы сайта ссылка на который указана в аргументах
Функции циклического парсинга void handler(function handler) - выбор функции вызываемой при циклическом парсинге void parse(string host, string url) - циклический парсинг сайта начиная от ссылки указаной в аргументах
Функции правил перехода по ссылкам void urlAllow(string query) - переход осуществляется только по ссылкам, содержащим строку query void urlAllowRegexp(string query) - переход осуществляется только по ссылкам, совпадающим с шаблоном regexp query разрешающие правила объединяются по логической схеме ИЛИ. Если не указано ни одно из правил, то переход происходит по любой ссылке. void urlDeny(string query) - запрет перехода по ссылкам, содержащим строку query void urlDenyRegexp(string query) - запрет перехода по ссылкам, совпадающим с шаблоном regexp query запрещающие правила объединяются по логической схеме ИЛИ и имеют больший приоритет чем разрешающие. urlReplaceRegexp(string from,string to) - заменяет символы в строке по паттерну
Вспомогательные функции string download(string url, string folder[, boolean noconflict=true]) - Скачивает файл ссылке url в папку folder. Возвращает локальное имя файла или false в случае ошибки. Если значение noconflict - true записываемое имя файла будет соответствовать хешу ссылки на него. Если файл уже присутствует в папке - функция возвращает его имя не скачивая его.
Функции работы с csv void function csv_set(string title, string value) - запись значения value для поля title void function csv_next() - переход к следующей строке csv void function csv_save(string filename) - сохранение csv в файл filename