网络爬虫性能

时间:2010-09-13 14:25:31

标签: java performance web-crawler

我很想知道在一般情况下(家庭酿造的业余网络爬虫)会有什么表现。更具体地说,爬虫程序可以处理多少页面。

当我说家用啤酒从各方面来看,2.4Ghz核心2处理器,java编写,50mbit互联网速度等等。

非常感谢您在这方面可以分享的任何资源

非常感谢,

卡洛斯

3 个答案:

答案 0 :(得分:5)

首先,计算机的速度不会成为限制因素;至于连接,你应该人为地限制你的抓取工具的速度 - 如果你开始锤击它们,大多数网站将禁止你的IP地址。换句话说,不要过快地抓取网站(每个请求10秒以上,99.99%的网站应该没问题,但要低于自己的危险)。

因此,当您可以在多个线程中抓取单个网站时,我建议每个线程抓取一个不同的网站(检查它是否也不是共享的IP地址);这样,你可以使你的连接饱和,从蜘蛛网站被禁止的可能性降低。

有些网站不希望您抓取网站的某些部分,并且您应该遵循常用的机制:robots.txt文件。阅读链接的网站并实现它。

另请注意,某些网站完全禁止任何自动抓取;根据网站的管辖权(你的也可能适用),打破这个可能是非法的(你负责你的脚本做什么,“机器人做的”甚至不是借口,更不用说辩护了。)

答案 1 :(得分:2)

根据我的经验,主要是制作网站抓取工具,网络下载始终是限制因素。您通常可以在不到下载下一页所需的时间内将页面解析(或稍后解析的存储)传递到不同的线程。

因此,平均而言,要弄清楚下载网页需要多长时间。乘以你下载的线程数量,直到它填满你的连接的吞吐量,平均出任何给定的web服务器的速度,数学是相当明显的。

答案 2 :(得分:0)

如果您的计划效率足够,您的互联网连接将成为限制因素(正如Robert Harvey在回答中所说)。

但是,通过家庭互联网连接,您可能会滥用提供商的服务条款。他们会对其进行监控,并最终会注意到您是否经常超出其合理的使用政策。

此外,如果他们使用透明代理,您可能会在达到下载限制之前将其代理锤死,所以要小心 - 确保您没有通过ISP的代理,透明或其他。

为大多数用户设置ISP,通过一些大型流媒体操作(视频或其他下载)进行中等级别的浏览。即使不使用太多带宽,大量的微小请求同时有100个未完成,也可能不会使他们的代理服务器感到高兴。