tag:blogger.com,1999:blog-3533262157176083768.post8724053914453554000..comments2022-04-30T16:07:23.961+03:00Comments on Парсинг от А до Я: DOM vs. RegExp on PHPMashahttp://www.blogger.com/profile/10942350700995896379noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-3533262157176083768.post-73868736811391481362009-11-10T21:28:07.703+03:002009-11-10T21:28:07.703+03:00> Скрипты удобны для удаленного запуска по расп...> Скрипты удобны для удаленного запуска по расписанию<br />> (не забудьте установить set_time_limit(),<br />> чтобы скрипт не останавливался,<br />> не доработав до конца).<br /><br />На шаред-хостингах не всегда есть такая возможность. Скорее ее нет, как правило.<br /><br />Тут я такую хитрость советую -- делите скрипт на три части: извлекатель ссылок, скачиватель, парсер.<br /><br />Извлекатель просто анализирует начальный html и складывает ссылки на закачку в файл.<br /><br />Затем по крону запускаете wget, который скачивает все страницы в папку.<br /><br />А дальше уже скачанные файлы распарсиваете и снова по кругу.<br /><br />Таким образом можно дикие объемы прогнать.Content Providerhttp://contentprovider.biz/noreply@blogger.comtag:blogger.com,1999:blog-3533262157176083768.post-60658882885436705522009-11-10T21:22:51.754+03:002009-11-10T21:22:51.754+03:00> Пару раз использовала комбинированный метод:
...> Пару раз использовала комбинированный метод:<br />> сначала большой табличный кусок "добывала" регуляркой,<br />> а потом уже эти хорошо структурированные данные<br />> разбирала через DOM.<br /><br />Я немного не так комбинирую.<br />Есть такая функция: <a href="http://www.php.ru/manual/function.strip-tags.html" rel="nofollow">strip_tags ( string str [, string allowable_tags] )</a><br /><br />Так вот все забывают про allowable_tags<br /><br />А зря. Ведь вы можете оставить только нужные вам для парсинга теги. Затем добавить в начало и конец html и body, чтобы получился валидный html. А дильше уже при помощи DOM разбирать.<br /><br />Регулярки хороши, но мне они кажутся медленными.Content Providerhttp://contentprovider.biznoreply@blogger.comtag:blogger.com,1999:blog-3533262157176083768.post-37685341364080144452009-10-11T11:00:33.650+04:002009-10-11T11:00:33.650+04:00simplehtmldom - отличный парсер!
Если что то и пар...simplehtmldom - отличный парсер!<br />Если что то и парсюто только им.<br />Кончено не только им, но и регулярками. Но в начале я полюбому выдеркиваю кусок текста/кода из html спомощью simplehtmldom, а потом уже этот кусок отдаю регуляркам так получается занчительно быстрей!Глюкhttp://g1yyk.runoreply@blogger.comtag:blogger.com,1999:blog-3533262157176083768.post-18432409792389445312009-08-30T02:23:55.881+04:002009-08-30T02:23:55.881+04:00Добрый день
А каким образом в Delphi решается вопр...Добрый день<br />А каким образом в Delphi решается вопрос "просмотр вперед" ?<br />Есть у меня выражение<br />(?=<span>)(.*?)(?=<\/span>)<br />Результат такой:<br /><SPAN>Crespi Estates<br /><br />Если делаю так:<br />(?<=<span>)(.*?)(?=<\/span>)<br /><br />Возникает ошибка, а в тестере все нормально. =(Anonymousnoreply@blogger.com