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

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

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

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

Если же вам нужна скорость и удобство - https://github.com/paquettg/php-html-parser (так же можно поискать еще варианты). Хотя опять же, возможно вариант с xpath будет даже удобнее.
Ответ написан
@PiloTeZ Автор вопроса
...
В итоге использовал DomDocument в связке с XPath, всё прошло замечательно :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
gzhegow
@gzhegow
aka "ОбнимиБизнесмена"
Рекомендация Протько устарела.

Парсер парсит с ошибками, стоит в тексте ссылки попасться < и парсинг уже пошел по трубам, и хотя simple_html_dom заставляет шторм лагать больше, т.к. не поделен на неймспейсы, но работает быстрее, проверено на сайте с 50 тысячами страниц, субьективно simple делал быстрее.

Сейчас буду искать новый.
Пока попробую этот: `dimabdc/php-fast-simple-html-dom-parser`
Ответ написан
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 маленький выбор селекторов. Главный его недостаток - это низкая производительность, это один из самых медленных парсеров.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы