Парсинг php phpquery

Парсинг PHP: Библиотека PHPQuery

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

Где скачать?!

Скачать библиотеку можно с официального сайта – https://code.google.com/archive/p/phpquery/downloads

Скачиваете последнюю версию и добавляете файлы в свой проект. После этого вам нужно подключить библиотеку к вашему проекту, для этого прописываем request и путь к файлу phpQuery/phpQuery/phpQuery.php

request 'phpQuery/phpQuery/phpQuery.php';

Основы работы с библиотекой PHPQuery

Тот кто раньше работал с библиотекой jQuery, без труда сможет разобраться с phpQuery.

Мы будем использовать phpQuery в связке с CURL.

Прописываем базовый код для CURL и записываем результат в переменную(в моем случае это $result).

$curl = curl_init();//инициализация
curl_setopt($curl, CURLOPT_URL, $url);//передаем наш URL
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//для записи результата в переменную
$result = curl_exec($curl);//запрос

После, прописываем $pq = phpQuery::newDocument($result);, здесь создается объект в котором находится весь код страницы и в этом объекте мы будем искать нужный нам элемент. Далее прописываем код поиска элементов.

Элемент можно найти на тегу элемента, классу элемента или идентификатору элемента.

По тегу$elem = $pq->find('тег');

По идентификатору$elem = $pq->find('#имя_идентификатора');

По классу$elem = $pq->find('.имя_класса');

Для примера я буду искать контейнер в коде главной страницы на моем сайте в котором находится название сайта. Класс site-title.

$pq = phpQuery::newDocument($result);
$elem = $pq->find('.site-title');//ищем элемент с классом site-title

Далее прописываем код, который заберёт HTML код из найденного элемента.

$text = $elem->html();//выводим html код из полученного элемента

Полный код запроса выглядит так:

require_once 'phpquery-master/phpQuery/phpQuery.php';//подключаем библиотеку
$url = 'http://prog-time.ru';//ссылка на сайт

$curl = curl_init();//инициализация
curl_setopt($curl, CURLOPT_URL, $url);//передаем наш URL
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//для записи результата в переменную
$result = curl_exec($curl);//запрос

$pq = phpQuery::newDocument($result);
$elem = $pq->find('.site-title');//ищем элемент с классом site-title
$text = $elem->html();//выводим html код из полученного элемента
var_dump($text);//выводим

Методы для выборки:

find – для поиска элементов в дереве DOM
html – возвращает строку. Получает HTML-содержимое первого элемента в наборе.
text – получает текст выбранного элемента в наборе. Если таких элементов несколько, получит содержимое всех элементов, разделенные пробелом

Обычно для выборки используют только несколько методов, но phpQuery позволяет использовать все методы аналогичные jQuery.

Со всеми методами phpQuery вы можете ознакомиться здесь – https://code.google.com/archive/p/phpquery/wikis/Manipulation.wiki

Хочешь научиться программировать?!

Заходи в нашу группу Вконтакте, там много полезной и интересной информации

Оставить комментарий

avatar
  Подписаться  
Уведомление о