Парсинг сайтів. Бібліотека phpQuery. Урок 3

22

Від автора: у цьому уроці ми з вами продовжимо роботу з бібліотекою phpQuery, яка значно спрощує парсинг сайтів. У попередньому уроці ми отримували контент однієї сторінки. Але що робити, якщо необхідний контент відразу декількох сторінок. В уроці ми створимо функцію, яка зможе переходити по сторінках пагинации і парсити задану кількість сторінок сайту.

Парсинг сайтів. Бібліотека phpQuery. Урок 3Парсинг сайтів. Бібліотека phpQuery. Урок 3

У відеоверсії уроку ви знайдете докладний коментування створюваної функції. Тут же я наведу підсумковий код уроку:

function parser($url, $start, $end){
if($start find(‘.articles-container .post-excerpt’) as $article){
$article = pq($article);
$img = $article->find(‘.img-cont img’)->attr(‘src’);
$text = $article->find(‘.pd-cont’)->html();
echo «Парсинг сайтів. Бібліотека phpQuery. Урок 3«;
echo $text;
echo «;
}
$next = $doc->find(‘.pages-nav .current’)->next()->attr(‘href’);
if( !empty($next) ){
$start++;
parser($next, $start, $end);
}
}
}
$url = ‘http://www.kolesa.ru/news/’;
$start = 0;
$end = 3;
parser($url, $start, $end);

Як бачимо, функція parser() отримуємо і парсити контент заданої сторінки. Потім вона перевіряє, чи є наступна сторінка для парсингу і, якщо така є, функція рекурсивно викликає себе, передаючи параметром новий адресу.

Кількість сторінок, які необхідно спарс, задається в параметрі $end. Все досить просто. На цьому поточний урок завершено. Удачі!