PHP DiDOM Библиотека для парсинга HTML страниц

PHP DiDOM Библиотека для парсинга HTML страниц
Метки: /

В этой статье вы прочитаете про PHP библиотеку DiDOM, для быстрого парсинга HTML страниц, но стоит сказать, что это только быстры старт работы с ней, а не полное руководство.

Также если вас интересует PHP, то можете почитать статью «Роутинг на языке PHP», тоже возможно будет вам интересно.

PHP DiDOM быстрый старт:

Для начала нужно скачать, для этого нам нужен composer, ведите вот эту команду:

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

Давайте покажу вам не большой пример, и вы убедитесь что с помощью очень легко:

Здесь всё очень просто, мы получаем страницу  «http://www.news.com/» и делаем поиск всех элементов с селектором .post, в итоге мы получаем массив с элементами, последние что мы делаем это проходимся циклом по массиву и выводим текст поста.

Загрузка HTML:

DiDom позволяет загружать HTML несколькими способами:

Второй параметр указывает, нужно ли загружать файл. По умолчанию — false.

Атрибуты:

  • $string — строка HTML или XML или путь к файлу.
  • $isFile — указывает, что первый параметр — это путь к файлу.
  • $encoding — кодировка документа.
  • $type — тип документа (HTML — Document :: TYPE_HTML, XML — Document :: TYPE_XML).

Отдельные методы:

Для загрузки XML доступны два метода: loadXml() и loadXmlFile().

Эти методы принимают дополнительные параметры:

Поиск элементов:

DiDOM принимает селектор CSS или XPath в качестве выражения для поиска. Вам нужно указать выражение пути в качестве первого параметра и указать его тип во втором (тип по умолчанию — Query::TYPE_CSS):

Если найдены элементы, соответствующие заданному выражению, метод возвращает массив экземпляров DiDom\Element, иначе — пустой массив. Вы также можете получить массив объектов DOMElement. Чтобы получить это, передайте false в качестве третьего параметра.

С помощью магического метода __invoke():

Предупреждение: использовать этот метод нежелательно, так как он может быть удален в будущем.

С помощью метода xpath():

Вы можете выполнять поиск внутри элемента:

Проверить, существует ли элемент:

Чтобы проверить, существует ли элемент, используйте метод has():

Если вам нужно проверить, существует ли элемент, а затем получить его:

Но было бы быстрее вот так:

Потому что в первом случае он делает два запроса.

Искать в документе:

Методы find(), first(), xpath(), has(), count() также доступны в Element.

Пример:

Метод findInDocument():

Если вы измените, замените или удалите элемент, который был найден в другом элементе, документ не будет изменен. Это происходит потому, что метод find() класса Element (соответственно методы first() и xpath()) создает новый документ для поиска.

Для поиска элементов в исходном документе необходимо использовать методы findInDocument() и firstInDocument():

Предупреждение: методы findInDocument() и firstInDocument() работают только для элементов, принадлежащих документу, и для элементов, созданных с помощью new Element(...). Если элемент не принадлежит документу, будет выброшено исключение LogicException;

Вывод:

В этой статье вы прочитали про PHP библиотеку DiDOM для парсинга страниц, думаю вам было интересно и полезно, но стоит сказать, что по сути эта статья не большая часть официальной документации на GitHub, поэтому если надо узнать о ней поподробнее, то заходите на неё и читайте.

Подписываетесь на соц-сети:

Оценка:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
(Пока оценок нет)
Загрузка...

Также рекомендую:

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии