使用Perl访问半百万页

时间:2010-09-10 06:58:52

标签: perl web-crawler www-mechanize

目前我正在使用Mechanize和get()方法来获取每个站点,并使用content()方法检查每个主页的内容。 我有一个非常快的计算机+ 10Mbit连接,但仍然需要9个小时来检查11K站点,这是不可接受的,问题是,get()函数的速度,显然,需要获取页面,有没有办法让它更快,也许是禁用某些东西,因为我只需要检查主页面html。

谢谢,

2 个答案:

答案 0 :(得分:14)

并行查询而不是串行查询。如果我需要这样做,我会分叉一个抓取页面的过程。 Parallel::ForkManagerLWP::Parallel::UserAgentWWW:Curl之类的内容可能有所帮助。我倾向于Mojo::UserAgent

答案 1 :(得分:7)

使用WWW::Curl(特别是WWW::Curl::Multi)。我正在使用它每天抓取100M +页面。该模块在libcurl之上是一个瘦的绑定,因此感觉有点像C-ish,但它很快并且几乎可以执行libcurl所能做的任何事情。

我不建议使用LWP :: Parallel :: UA,因为它有点慢,模块本身也没有经过深思熟虑。当我开始编写一个爬虫时,我原本考虑过分配LWP :: Parallel :: UA,但当我调查它的内部时,我决定反对它。

免责声明:我是WWW::Curl模块的当前维护者。