首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web爬虫性能

web爬虫性能
EN

Stack Overflow用户
提问于 2010-09-13 22:25:31
回答 3查看 2.7K关注 0票数 1

我有兴趣知道在一个非常一般的情况下(一个自制的业余网络爬虫)会有什么样的表现。更具体地说,一个爬虫程序可以处理多少个页面。

当我说自制酿造在所有意义上,2.4 say核心2处理器,java编写,50mbit网速,等等。

我们将非常感谢您在这方面分享的任何资源。

非常感谢,

卡洛斯

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-13 22:36:37

首先,计算机的速度不会成为限制因素;至于连接,你应该人为地限制爬虫的速度--如果你开始攻击你的网站,大多数网站都会禁止你的IP地址。换句话说,不要抓取一个站点太快(对于99.99%的站点,每个请求的10+秒应该是可以的,但是低于这个数将自负风险)。

因此,虽然您可以在多个线程中抓取单个站点,但我建议每个线程抓取不同的站点(检查它是否也不是一个共享的IP地址);这样,您可以使您的连接饱和,从而降低从爬行站点被禁止访问的机会。

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

还要注意,一些站点根本禁止任何自动爬行;根据站点的权限(您的权限可能也适用),违反这一点可能是非法的(您对您的脚本所做的事情负责,“机器人做的事情”甚至不是借口,更不用说辩解了)。

票数 5
EN

Stack Overflow用户

发布于 2010-09-13 22:37:22

根据我的经验,大多数网站都是做刮板的,网络下载一直是限制因素。您通常可以将页面的解析(或稍后解析的存储)穿梭到不同的线程中,所需时间少于下载下一个页面所需的时间。

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

票数 2
EN

Stack Overflow用户

发布于 2010-09-14 00:51:05

如果你的程序足够高效,你的互联网连接将是限制因素(正如Robert Harvey在他的回答中所说的那样)。

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

此外,如果他们使用透明代理,你可能会在达到他们的下载限制之前很久就敲打死他们的代理,所以要小心-确保你没有通过ISP的代理,透明或不透明。

ISP是为大多数用户设置的,以便通过一些大型流媒体操作(视频或其他下载)进行中等水平的浏览。大量的小请求,即使不占用太多带宽,也不会让他们的代理服务器满意。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3701313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档