Полная версия (с сорцами - в блоге)
Перед нашей братией часто возникает необходимость парсить html-страницы(тк добровольно контент посредством API/RSS/XML-данных отдают далекоо не все Захотелось написать мне эту статью потому, что многие даже не представляют что есть варианты парсинга кроме регулярок
1.Строковые функции
Использование функций strpos / substr (поиск нужного места — извлечение подстроки) . Самый быстрый вариант (в 8 раз быстрее регулярок по результатам некоторых тестов). Из недостатков — громоздкий код, решается написанием библиотечных функций, например, такую (skipped)
2.Регулярные выражения
Самый компактный способ записи желаемого ) И самый любимы у сеошников ) Из минусов — код быстро становится нечитаемым. Как-то раз приходилось сталкиваться с парсером мегапорносайта, в котором было регулярок на два листа ) Пришлось писать заново. По скорости этот вариант между строковыми функциями и Dom-деревом.
3.Разбор DOM-дерева
Самый медленный способ, но самый надежный. Если в предыдущих способах все обычно ломается от появления лишних кавычек или пробела в коде (или вписывания разработчиком нового аттрибута итп), то Dom-дерево будет парсится пока у нужного элемента не сменится name или id. Для всех популярных языков программирования как правило уже есть библиотеки разбора, вам остается лишь дописывать функции типа этой (skipped)