如何使用Perl高效地提取HTML内容?

时间:2009-09-11 08:53:48

标签: html perl html-content-extraction

我正在Perl中编写一个爬虫程序,它必须提取驻留在同一服务器上的网页内容。我目前正在使用HTML::Extract模块来完成这项工作,但我发现模块有点慢,所以我查看了它的源代码,发现它没有使用LWP::UserAgent的任何连接缓存。

我的最后一招是获取HTML::Extract的源代码并修改它以使用缓存,但如果可以,我真的想避免这种情况。有谁知道任何其他可以更好地执行相同工作的模块?我基本上只需要删除<body>元素中的所有文本并删除HTML标记。

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

HTML::Extract的功能看起来非常基本且无趣。如果draegfun提到的模块对您不感兴趣,那么您可以自己完成HTML::Extract使用LWP::UserAgentHTML::TreeBuilder所做的一切,而不需要太多代码,然后您就可以了可以按照自己的条件免费使用缓存。

答案 2 :(得分:0)

我一直在使用Web::Scraper来满足我的拼抢需求。它确实非常适合提取数据,并且因为你可以调用->scrape($html, $originating_uri),所以很容易缓存你需要的结果。

答案 3 :(得分:0)

您需要实时执行此操作吗?效率低下如何影响你?您是否按顺序执行任务,以便在进入下一个页面之前必须提取一个页面?为什么要避免缓存?

您的抓取工具可以下载网页并将其传递给其他网页吗?也许您的爬虫甚至可以并行运行,也可以以某种分布式方式运行。