Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Парсинг HTML по шаблону(Perl) / 7 сообщений из 7, страница 1 из 1
03.07.2014, 12:35
    #38686713
Gys
Gys
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг HTML по шаблону(Perl)
Есть система извлечения данных с сайтов и их парсинга, сейчас работает на regexp'ах - для каждого сайта своя регулярка и лежит в БД. В связи с необходимостью извлечения сложных данных и их формирования, регулярки уже не подходят, необходимо нечто более функциональное, но что-бы сам шаблон извлечения и форматирования был в БД. Смотрел в сторону XML::LibXSLT - был бы идеальный вариант, если бы проходили не валидные HTML-страницы(а сайты именно такие). Можно делать на самом же Perl через eval, код разбора грузить из БД, но не безопасно, мало ли что там в шаблоне прописано будет. Ещё как вариант встраиваемый JS с jQuery, есть сомнения по производительности(т.к. потоков разбора несколько сотен) и совместимости с Coro(используется для многопоточности).
Возможно посоветуете вариант? Задача такая парсить html по шаблону с возможностью формирования данных в нужном формате и организации циклов, условий, сам шаблон должен быть в виде строки(в БД, файле)
...
Рейтинг: 0 / 0
03.07.2014, 13:07
    #38686754
Gys
Gys
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг HTML по шаблону(Perl)
C невалидным Html помогло
Код: php
1.
2.
$xml_parser->recover_silently(1);
$xml_parser->keep_blanks(1);


для XML::LibXML
...
Рейтинг: 0 / 0
04.07.2014, 02:37
    #38687400
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг HTML по шаблону(Perl)
GysЕ Можно делать на самом же Perl через eval, код разбора грузить из БД, но не безопасно, мало ли что там в шаблоне прописано будет.


создавай шаблон с контрольной суммой, при считывании проверяй.
...
Рейтинг: 0 / 0
04.07.2014, 12:56
    #38687865
Gys
Gys
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг HTML по шаблону(Perl)
volodin661GysЕ Можно делать на самом же Perl через eval, код разбора грузить из БД, но не безопасно, мало ли что там в шаблоне прописано будет.


создавай шаблон с контрольной суммой, при считывании проверяй.
Не понял сути, что это даст? Если доступ к редактированию шаблона имеют люди, не имеющие полного доступа к системе. Используя XSL они не могут выйти за рамки задачи шаблонов, а если был-бы eval то как контрольная сумма тут бы спасла?
...
Рейтинг: 0 / 0
04.07.2014, 13:47
    #38687948
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг HTML по шаблону(Perl)
автормало ли что там в шаблоне прописано будет.
Да все просто - увольте этих программистов-вредителей.
Откуда там этот код должен браться?

Все другие случаи типа "так уж в индустрии принято, разделяем и властвуем" только ограничивают вашу эффективность в ущерб непонятно чему.
...
Рейтинг: 0 / 0
04.07.2014, 13:48
    #38687951
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг HTML по шаблону(Perl)
Gys,

я понял так, что требуется обезопаситься от случайного/намеренного изменения шаблона,
находящегося в БД без возможности контроля доступа к последнему.
поэтому и был такой совет.
...
Рейтинг: 0 / 0
04.07.2014, 14:02
    #38687972
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг HTML по шаблону(Perl)
Gysдля XML::LibXSLT
Допустим, есть еще Web::Scraper.
Вещь созданная исключительно для парсинга и невалидные страницы она прекрасно брала с самого рождения.
Однако, есть вероятность, что для "совсем уж невалидных" страниц вы не сможете написать xpath-выражения выбирающие нужные данные. Такое встречается.
Кроме того, некоторые сайты просто проще парсить комбинированным методом xpath + preg.
Так что вы все равно придете либо к созданию собственного языка правил либо к хранению кода в базе.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Парсинг HTML по шаблону(Perl) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]