Парсинг HTML- 3 подхода - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB90.7493
BTC/USD70882.7802
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 10.09.2010, 19:41   #1
sandy
Сеньор Член
 
Аватар для sandy
 
Регистрация: 11.04.2007
Адрес: The World
Сообщений: 1,125
Бабло: $107796
Отправить сообщение для sandy с помощью ICQ
По умолчанию Парсинг HTML- 3 подхода

Полная версия (с сорцами - в блоге)


Перед нашей братией часто возникает необходимость парсить html-страницы(тк добровольно контент посредством API/RSS/XML-данных отдают далекоо не все Захотелось написать мне эту статью потому, что многие даже не представляют что есть варианты парсинга кроме регулярок

1.Строковые функции
Использование функций strpos / substr (поиск нужного места — извлечение подстроки) . Самый быстрый вариант (в 8 раз быстрее регулярок по результатам некоторых тестов). Из недостатков — громоздкий код, решается написанием библиотечных функций, например, такую (skipped)

2.Регулярные выражения
Самый компактный способ записи желаемого ) И самый любимы у сеошников ) Из минусов — код быстро становится нечитаемым. Как-то раз приходилось сталкиваться с парсером мегапорносайта, в котором было регулярок на два листа ) Пришлось писать заново. По скорости этот вариант между строковыми функциями и Dom-деревом.

3.Разбор DOM-дерева
Самый медленный способ, но самый надежный. Если в предыдущих способах все обычно ломается от появления лишних кавычек или пробела в коде (или вписывания разработчиком нового аттрибута итп), то Dom-дерево будет парсится пока у нужного элемента не сменится name или id. Для всех популярных языков программирования как правило уже есть библиотеки разбора, вам остается лишь дописывать функции типа этой (skipped)
sandy вне форума  
Старый 10.09.2010, 20:59   #2
qazxcvbnm
Ниибаца крутой програмер
 
Аватар для qazxcvbnm
 
Регистрация: 04.08.2009
Сообщений: 904
Бабло: $177555
По умолчанию

бля, ну нахуя палить темы ?
qazxcvbnm вне форума  
Старый 10.09.2010, 21:16   #3
redlain
Ебланнед
 
Регистрация: 27.10.2009
Сообщений: 1,628
Бабло: $240645
По умолчанию

Цитата:
Сообщение от qazxcvbnm Посмотреть сообщение
бля, ну нахуя палить темы ?
помойму нихуя нового ни для кого он не спалил.
redlain вне форума  
Старый 10.09.2010, 21:26   #4
sandy
Сеньор Член
 
Аватар для sandy
 
Регистрация: 11.04.2007
Адрес: The World
Сообщений: 1,125
Бабло: $107796
ТС -->
Отправить сообщение для sandy с помощью ICQ
автор темы ТС По умолчанию

не вижу тут "тем" вообще, довольно базовые вещи, по частям все описано в сотнях блогов. я просто свел и сравнил, тк интенсивно юзал все три подхода много раз, и есть что сравнивать
sandy вне форума  
Старый 10.09.2010, 21:40   #5
qazxcvbnm
Ниибаца крутой програмер
 
Аватар для qazxcvbnm
 
Регистрация: 04.08.2009
Сообщений: 904
Бабло: $177555
По умолчанию

это шутка была
qazxcvbnm вне форума  
Старый 10.09.2010, 22:10   #6
medar
кодер-энтузиаст
 
Аватар для medar
 
Регистрация: 04.04.2007
Адрес: Джамайка
Сообщений: 3,381
Бабло: $447150
По умолчанию

Для php - мне недавно хвалили вот эту либу http://simplehtmldom.sourceforge.net/

Я же по старинке, регулярками.
medar вне форума  
Старый 10.09.2010, 22:32   #7
JackSoft
Бабло победит зло
 
Аватар для JackSoft
 
Регистрация: 20.06.2008
Сообщений: 2,579
Бабло: $346045
По умолчанию

Цитата:
Сообщение от medar Посмотреть сообщение
Для php - мне недавно хвалили вот эту либу http://simplehtmldom.sourceforge.net/

Я же по старинке, регулярками.
Сомневаюсь, что она быстрее PHP либы написанной на С.
__________________
"Одно Касание/Touch File" - безопасный обмен файлами "TFUtils" - набор утилит TouchFile "TF Screenshots" - заменим Gyazo безопасным аналогом
JackSoft вне форума  
Старый 10.09.2010, 22:37   #8
sandy
Сеньор Член
 
Аватар для sandy
 
Регистрация: 11.04.2007
Адрес: The World
Сообщений: 1,125
Бабло: $107796
ТС -->
Отправить сообщение для sandy с помощью ICQ
автор темы ТС По умолчанию

симпл хтмл дом простая как название ) но глючная помню наебался в свое время с ней(в чем глюки правда позабыл уже
в пхп 5 есть встроенная либа DOM XML в 4 пыхе тоже была вроде но ОЧЕНЬ глючная
sandy вне форума  
Старый 10.09.2010, 22:52   #9
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
По умолчанию

да-да, xpath очень решает
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 10.09.2010, 23:21   #10
Hector
hustle
 
Аватар для Hector
 
Регистрация: 02.05.2008
Адрес: 3d world
Сообщений: 12,890
Бабло: $1717315
Отправить сообщение для Hector с помощью Jabber
По умолчанию

регулярки юзаю) на скорость плевать
Hector вне форума