Автор Тема: HTML parse - DOM или preg_match ?  (Прочетена 3818 пъти)

rammstein

  • Напреднали
  • *****
  • Публикации: 19
  • Distribution: FreeBSD
  • Window Manager: KDE
    • Профил
HTML parse - DOM или preg_match ?
« -: Sep 07, 2011, 16:24 »
Здравейте на всички . :)
В момента работя над един проект в , който се налага да парсвам HTML. Проекта е конзолна програма на PHP, която обхожда и събира информация от няколко сайта и след това я вкарва в база данни.
Въпросът ми е кое е по-добре да използвам, библиотеката  DOM или в момента както работя с pregmatch?
Като с preg_match се съкращават доста редове от написани с DOM , но пък с preg_match трябва за всяко едно нещо, което искаме да парснем трябва да се напише RegEx .
Активен

sdr

  • Напреднали
  • *****
  • Публикации: 655
    • Профил
Re: HTML parse - DOM или preg_match ?
« Отговор #1 -: Sep 07, 2011, 16:40 »
ами .. аз ползвам комбиниран метод - с "котви" си го отрязвам около инфото което ме интересува и после го прегмач-вам. с ДОМ ми се струва овъркил па и има риск ако дома нещо не може да го напарсне да не стане работата. То пак зависи до каква степен това което парсваш е мислено да е парсвано но ако е "ръчен" ХТМЛ ДОМ-а ми се струва ненадежден :(
Активен

d0ni

  • Напреднали
  • *****
  • Публикации: 183
    • Профил
Re: HTML parse - DOM или preg_match ?
« Отговор #2 -: Sep 07, 2011, 23:09 »
Моят съвет е да пробваш първо с DOM. Има режим, в който парсъра може да се справи с грешки в HTML-а и го прави добре. Ползвал съм го и работи добре.
Активен

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: HTML parse - DOM или preg_match ?
« Отговор #3 -: Sep 14, 2011, 10:56 »
В зависимост от за какво ти трябва резултата от парсването, можеш да използваш и XSLT и да получиш прим. удобен XML файл.
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

Demayl

  • Напреднали
  • *****
  • Публикации: 104
  • Distribution: XUbuntu,FreeBSD
  • Window Manager: Xfce
    • Профил
    • WWW
Re: HTML parse - DOM или preg_match ?
« Отговор #4 -: Nov 22, 2011, 20:16 »
Аз лично ползвам regex-i, защото в много сайтове си слагат търсените от нас данни където си поискат, но го правя на PERL.
Активен

PhrozenCrew

  • Напреднали
  • *****
  • Публикации: 51
    • Профил
Re: HTML parse - DOM или preg_match ?
« Отговор #5 -: Dec 13, 2011, 10:52 »
Аз извличам доста информация от различни сайтове. Пробвал съм много методи, но към момента ми се струва най-практичен XPath. Можеш да погледнеш простичък скрипт, който да ти даде идея:
PHP XPath command line graber – for Windows and Linux
Синтаксиса на XPath е елементарен. Има доста информация в мрежата. Ако се чудиш от къде да го хванеш, ти препоръчвам да погледнеш този Cheatsheet: http://www.cheat-sheets.org/saved-copy/Locators_table_1_0_2.pdf

Тази техника я използвам и за да извличам инфото от цял сайт директно в база данни и работи чудесно. Пробвал съм и с XML-парсери на Perl, но ако има грешка в html-кода скрипта гърми на грешката. Вероятно не разбирам достатъчно и не мога да накарам парсера да игнорира грешките. PHP-парсера е по-либерален в това отношение.
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
HTML редактирането
Предложения за подобрения на сайта
ogi 0 4036 Последна публикация May 16, 2002, 15:19
от ogi
визуален html редактор
Хардуерни и софтуерни проблеми
wandererbg 6 4531 Последна публикация Sep 18, 2003, 17:31
от kennedy
Unable to parse package file /var/lib/dpkg/status
Настройка на програми
Regia 17 5550 Последна публикация Feb 08, 2005, 13:40
от
Parse-metadata
Настройка на програми
moffo 1 1872 Последна публикация Jun 15, 2006, 10:53
от kennedy
Could not parse the XML file ().
Кошче
Pavlik 2 2470 Последна публикация Jan 17, 2012, 18:17
от ivo_18