我如何阻止网页抓取而不阻止乖巧的机器人?

时间:2009-02-25 21:19:13

标签: security seo screen-scraping bots

我正在建立一个拥有大型产品数据库的电子商务网站。当然,当Goggle为网站的所有产品编制索引时,这很好。但是,如果一些竞争对手想要Web Scrap该网站并获得所有图像和产品描述呢?

我观察了一些类似产品列表的网站,他们放置了一个CAPTCHA,因此“只有人类”可以阅读产品列表。缺点是......对于谷歌,雅虎或其他“表现良好”的机器人来说它是不可见的。

6 个答案:

答案 0 :(得分:2)

您可以通过使用whois检查访客IP(在命令行或网站上)来发现Google和其他人正在使用的IP地址。然后,一旦你积累了一大堆合法的搜索引擎,就可以在没有CAPTCHA的情况下将它们放入你的产品列表中。

答案 1 :(得分:1)

由于潜在的屏幕抓取应用程序可能会欺骗标题中的用户代理和HTTP引用(用于图像)并使用类似于人类浏览器的时间表,因此无法完全停止专业的抓取工具。但是你可以检查这些东西并防止随意刮擦。 我个人觉得Captchas除了在网站上注册外还要烦恼。

答案 2 :(得分:1)

如果您担心竞争对手使用您的文字或图片,水印或自定义文字怎么样?

让他们拍摄你的照片,你的网站上就会有你的标志!

答案 3 :(得分:0)

您可以尝试的一种技术是“蜜罐”方法:可以通过一些简单的脚本来挖掘日志文件来完成。

基本过程是您通过查找在非常短的时间内查看2个以上不相关产品的IP地址来构建您自己的刮板IP“黑名单”。这些IP可能属于机器。然后,您可以对它们进行反向查找,以确定它们是否良好(如GoogleBot或Slurp)或不良。

答案 4 :(得分:0)

阻止网络诈骗者并不容易,并且试图避免误报更加困难。

无论如何,您可以在白名单中添加一些netrange,并且不向他们提供任何验证码。 所有这些众所周知的抓取工具:Bing,Googlebot,Yahoo等。在抓取时始终使用特定的netranges,并且所有这些IP地址都会解析为特定的反向查找。

几个例子:

Google IP 66.249.65.32已解析为crawl-66-249-65-32.googlebot.com

Bing IP 157.55.39.139解析为msnbot-157-55-39-139.search.msn.com

Yahoo IP 74.6.254.109解析为h049.crawl.yahoo.net

所以,让我们说' *。googlebot.com ',' *。search.msn.com '和' * .crawl.yahoo.net '地址应列入白名单。

您可以在互联网上实施大量白名单。

说,我不相信Captcha是针对高级刮刀的解决方案,因为 deathbycaptcha.com 2captcha.com 等服务承诺解决任何问题几秒钟内就会有一种验证码。

请查看我们的wiki http://www.scrapesentry.com/scraping-wiki/我们写了很多关于如何预防,检测和阻止网络抓取工具的文章。

答案 5 :(得分:-1)

也许我过度简化了,但如果您关注服务器性能,那么提供API将减少对刮刀的需求,并节省带/宽处理器时间。

此处列出的其他想法:

http://blog.screen-scraper.com/2009/08/17/further-thoughts-on-hindering-screen-scraping/