Инструменты пользователя

Инструменты сайта


siteparser

Это старая версия документа!


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

/*
Работа с классом достаточно проста, хоть и кажется сложной с первого взляда.
 
класс циклически переходит по ссылкам в пределах хоста начиная с указаной в аргументе функции 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

siteparser.1555197779.txt.gz · Последние изменения: 2019/04/14 02:22 — a1