如何确保机器人/刮刀不会被阻挡

时间:2012-05-08 14:19:17

标签: screen-scraping web-scraping bots

我编写了一个简单的刮刀,他的工作是在一个网站的几个不同的页面上。做一些解析,调用一些通过AJAX调用的URL,并将数据存储在数据库中。

麻烦的是,我的刮刀执行后有时候我的ip被阻止了。我可以采取哪些步骤以防止我的IP被阻止?有没有推荐的做法?我在请求之间添加了5秒的差距几乎没有效果。该网站是中等大的(需要刮几个URL)和我的互联网连接速度慢,所以脚本运行超过一个小时。是否可以通过更快的网络连接(如托管服务)提供帮助?

基本上我想编写一个表现良好的机器人。

最后我不是邮寄或发送垃圾邮件。

编辑:我想我会将我的剧本分成4-5个部分并在一天中的不同时间运行它们。

3 个答案:

答案 0 :(得分:2)

你可以使用旋转代理,但那不是一个表现很好的机器人。你看过该网站的robots.txt吗?

答案 1 :(得分:1)

编写你的僵尸程序,使其更有礼貌,即不要按顺序获取所有内容,但在战略位置添加延迟。

答案 2 :(得分:0)

遵循robots.txt中设置的指南是很好的第一步。有一些工具,如import.io和morph.io。还有用于服务器的包/插件。例如x-ray; node.js有选项可以帮助快速编写负责的抓取工具,例如油门,延误,最大连接等。