Linux за българи: Форуми

Програмиране => Web development => Темата е започната от: rammstein в Sep 07, 2011, 16:24



Титла: HTML parse - DOM или preg_match ?
Публикувано от: rammstein в Sep 07, 2011, 16:24
Здравейте на всички . :)
В момента работя над един проект в , който се налага да парсвам HTML. Проекта е конзолна програма на PHP, която обхожда и събира информация от няколко сайта и след това я вкарва в база данни.
Въпросът ми е кое е по-добре да използвам, библиотеката  DOM или в момента както работя с pregmatch?
Като с preg_match се съкращават доста редове от написани с DOM , но пък с preg_match трябва за всяко едно нещо, което искаме да парснем трябва да се напише RegEx .


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


Титла: Re: HTML parse - DOM или preg_match ?
Публикувано от: d0ni в Sep 07, 2011, 23:09
Моят съвет е да пробваш първо с DOM. Има режим, в който парсъра може да се справи с грешки в HTML-а и го прави добре. Ползвал съм го и работи добре.


Титла: Re: HTML parse - DOM или preg_match ?
Публикувано от: VladSun в Sep 14, 2011, 10:56
В зависимост от за какво ти трябва резултата от парсването, можеш да използваш и XSLT и да получиш прим. удобен XML файл.


Титла: Re: HTML parse - DOM или preg_match ?
Публикувано от: Demayl в Nov 22, 2011, 20:16
Аз лично ползвам regex-i, защото в много сайтове си слагат търсените от нас данни където си поискат, но го правя на PERL.


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

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