Как я могу эффективно извлекать HTML-контент с помощью Perl?

StackOverflow https://stackoverflow.com/questions/1409799

Вопрос

Я пишу поисковый робот на Perl, который должен извлекать содержимое веб-страниц, находящихся на одном сервере.В настоящее время я использую HTML::Извлечь модуль для выполнения этой работы, но я обнаружил, что модуль немного медленный, поэтому я заглянул в его исходный код и обнаружил, что он не использует кэш подключений для LWP:: Агент пользователя.

Мое последнее средство - схватить HTML::Extractэто исходный код и измените его, чтобы использовать кэш, но я действительно хочу избежать этого, если смогу.Кто-нибудь знает какой-нибудь другой модуль, который может выполнять ту же работу лучше?По сути, мне просто нужно захватить весь текст в <body> элемент с удаленными HTML-тегами.

Это было полезно?

Другие советы

Функции

HTML::Extract выглядят очень простыми и неинтересными. Если упомянутые draegfun модули вас не интересуют, вы могли бы делать все, что LWP::UserAgent делает с помощью HTML::TreeBuilder и <=>, самостоятельно, без особого кода, и тогда вы могли бы свободно работать в режиме кэширования. ваши собственные условия.

Я использую Web :: Scraper для своих нужд. На самом деле это очень удобно для извлечения данных, и, поскольку вы можете вызывать ->scrape($html, $originating_uri), очень легко кешировать и нужный вам результат.

Вам нужно сделать это в режиме реального времени? Как неэффективность влияет на вас? Выполняете ли вы задачу поочередно, чтобы вам пришлось извлечь одну страницу, прежде чем перейти к следующей? Почему вы хотите избежать кэша?

Может ли ваш сканер загрузить страницы и передать их чему-то другому? Возможно, ваш сканер может работать параллельно или каким-либо другим образом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top