目前我正在使用Mechanize和get()方法来获取每个站点,并使用content()方法检查每个主页的内容.我有一个非常快的计算机+ 10Mbit连接,但仍然需要9个小时来检查11K站点,这是不可接受的,问题是,get()函数的速度,显然,需要获取页面,有什么方法可以让它更快,也许是禁用某些东西,因为我只需要检查主页面html.
谢谢,
并行查询而不是串行查询.如果我需要这样做,我会分叉一个抓取页面的过程.像Parallel :: ForkManager,LWP :: Parallel :: UserAgent或WWW:Curl可能有所帮助.我倾向于喜欢Mojo :: UserAgent.
使用WWW::Curl
(特别是WWW :: Curl :: Multi).我正在使用它每天抓取100M +页面.该模块是一个瘦的绑定libcurl
,所以它感觉有点C-ish,但它很快,几乎任何libcurl都可以做.
我不建议使用LWP :: Parallel :: UA,因为它有点慢,模块本身也没有经过深思熟虑.当我开始编写一个爬虫时,我最初考虑过分配LWP :: Parallel :: UA,但当我调查它的内部时,我决定反对.
免责声明:我是该WWW::Curl
模块的当前维护者.