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

27

Від автора: у цьому уроці ми з вами продовжимо роботу з бібліотекою 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. Все досить просто. На цьому поточний урок завершено. Удачі!