我正在用Perl写一个爬虫程序,它必须提取驻留在同一台服务器上的网页内容。我目前使用HTML::Extract模块来完成这项工作,但是我发现模块有点慢,所以我查看了它的源代码,发现它没有使用任何连接缓存来处理LWP::UserAgent。如何使用Perl高效提取HTML内容?
我最后的手段是抓住HTML::Extract
的源代码,并修改它以使用缓存,但我真的想避免,如果我可以。有没有人知道任何其他模块可以更好地执行相同的工作?我基本上只需要抓取<body>
元素中的所有文本,并删除HTML标签。
感谢您的回答。我想知道,你知道你提到的哪个模块更适合重复提取大量的HTML页面吗? – Alvin 2009-09-11 17:25:04
使用Web :: Scraper,至少可以将它传递给页面的内容,而不是URL。这样,您就可以在抓取之前执行自己的缓存。 – 2009-09-12 12:52:06
@Alvin:我不知道,因为我不知道Web :: Scraper,HTML :: TreeBuilder或任何其他模块如何针对pQuery执行操作。所有的利弊取决于具体的要求。顺便说一句,要获得在
与在pQuery中删除的HTML标签中的所有文本是:pQuery($ html_data) - > find('body') - > text; – draegtun 2009-09-12 21:48:29