2010-12-09 80 views
4

我要抓取一个网站的一些信息。它大约有17万多页。那么,我可以提出多少请求?我要提取直到HTML并获得一些信息。这是一个非常受欢迎的网站,所以如果只是快速浏览所有网页,我不认为它会死亡......唯一让我感到紧张的是我不知道拥有者是否会阻止我的IP或某些东西如果你这样做?这是正常的吗?我应该只加载5页/分钟?然后它将永远......我想每24小时看一次新数据。我能够以多快的速度抓取一个网站?

感谢您的回复!

回答

1

每次请求后的第二个或两个延迟应该足够。尽可能快地让你的机器人爬行可能实际上让你被禁止。在我的日常工作中,我管理几个报纸的网站,偶尔看到本土爬虫。不好的可能会导致很多系统代码,并导致IP黑名单的新增加。不要成为那个人。

+0

我有5个IP地址。还有我随机选择的一个庞大的useragents列表。你认为他们阻止我,如果每个IP请求1页/ 2秒? – IQlessThan70 2010-12-09 06:05:17

1

只要你服从他们的robots.txt指示,你应该没问题。我在两次请求之间看到的标准延迟时间为2秒 - 这通常是极限,之后您可能会开始阻止流量或IP被阻止。

+1

2秒只是一种非正式商定的延迟,或者是在某个地方建立的?另外,我应该如何解释未指定抓取延迟的robots.txt文件?这是否意味着他们不关心我抓取的速度有多快,还是通常没有指定?谢谢! – abw333 2013-01-23 21:35:52

+0

我不认为它在任何地方正式建立。许多系统会建立2秒的默认值,如果你低于这个阈值,即使他们没有提及它,或者不在乎,它会开始虐待你。 – blueberryfields 2013-01-24 20:41:22

5

这需要一段时间,实际上我建议你使用旋转代理,并添加多线程。 10个线程会做。这样,你可以同时有10个请求。使用代理服务器的速度会很慢,并且每次请求至少增加1.5秒的超时时间,这会减慢你的速度,但会降低被禁止的风险。

2

几年前,我创建了一个webcrawler,每天从BBC的网站每晚抓取大约7GB(受带宽限制),永远不会被阻止,但在请求之间添加1秒的延迟是件好事。