Задать вопрос

Какой парсер HTML на PHP выбрать?

Доброго времени суток. Подскажите пожалуйста, какой лучше парсер HTML выбрать?
Мои варианты:

1. Simple HTML DOM
Удобный скрипт, но поддержка XPath частичная
2. DomDocument
Мало о нём знаю, но читал, что поддерживает XPath в полной мере

Парсер будет использоваться регулярно, нужны большие возможности навигации по DOM. Может быть есть лучшие решения?
  • Вопрос задан
  • 12314 просмотров
Подписаться 9 Оценить Комментировать
Решения вопроса 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Если вам нужна производительность - один из приведенных вами вариантов. Насколько я помню первый вариант так же поддерживает xpath.

Если же вам нужна скорость и удобство - https://github.com/paquettg/php-html-parser (так же можно поискать еще варианты). Хотя опять же, возможно вариант с xpath будет даже удобнее.
Ответ написан
@PiloTeZ Автор вопроса
...
В итоге использовал DomDocument в связке с XPath, всё прошло замечательно :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
konst20
@konst20
Программист, преподаватель, немного электронщик
Simple HTML DOM
Удобный скрипт, но маленький выбор селекторов


Простите, не соглашусь
библиотека понимает, например, такое
$css = "div.class1 p.class2 a" - элемент a, который внутри p class="class2", который внутри div class ="class1"
при этом между указанными элементами могут быть еще элементы.
Селекторы библиотека понимает любые, с чего вы взяли "маленький выбор селекторов".
С Simple HTML Dom есть некоторый гемморой на старте, также нужно отслеживать ситуацию, когда элемент не найден, но нареканий у меня нет.
Ответ написан
Комментировать
vshemarov
@vshemarov
Не соглашусь, что у Simple HTML DOM маленький выбор селекторов. Главный его недостаток - это низкая производительность, это один из самых медленных парсеров.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект