目前我正在使用机械化和get()方法获取每个站点,并检查内容()方法每个主页的东西。我有一个非常快的电脑+10Mbit连接,仍然,花了9个小时来检查11K网站,这是不可接受的,问题是,速度的获得()函数,这,显然,需要得到的页面,有没有什么办法,使它更快,也许禁用的东西,因为我只需要主页面html被检查。谢谢你,
watbbzwu1#
并行查询而不是串行查询。如果我需要这样做,我会派生一个进程来获取页面。类似Parallel::ForkManager、LWP::Parallel::UserAgent或WWW:Curl的东西可能会有帮助。我倾向于Mojo::UserAgent。
mdfafbf12#
使用WWW::Curl(特别是WWW::Curl::Multi)。我每天用它抓取1亿多页。该模块是libcurl之上的一个薄绑定,所以感觉有点C风格,但它很快,几乎可以做libcurl所能做的任何事情。我不推荐使用LWP::Parallel::UA,因为它有点慢,而且模块本身也没有经过很好的考虑。当我开始写爬虫的时候,我最初想过派生LWP::Parallel::UA,但是当我研究它的内部结构时,我决定不这样做。免责声明:我是WWW::Curl模块的当前维护者。
WWW::Curl
libcurl
2条答案
按热度按时间watbbzwu1#
并行查询而不是串行查询。如果我需要这样做,我会派生一个进程来获取页面。类似Parallel::ForkManager、LWP::Parallel::UserAgent或WWW:Curl的东西可能会有帮助。我倾向于Mojo::UserAgent。
mdfafbf12#
使用
WWW::Curl
(特别是WWW::Curl::Multi)。我每天用它抓取1亿多页。该模块是libcurl
之上的一个薄绑定,所以感觉有点C风格,但它很快,几乎可以做libcurl所能做的任何事情。我不推荐使用LWP::Parallel::UA,因为它有点慢,而且模块本身也没有经过很好的考虑。当我开始写爬虫的时候,我最初想过派生LWP::Parallel::UA,但是当我研究它的内部结构时,我决定不这样做。
免责声明:我是
WWW::Curl
模块的当前维护者。