Титла: 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-парсера е по-либерален в това отношение. |