1

我正在建立一个包含大型产品数据库的电子商务网站。当然,当 Goggle 索引网站的所有产品时也很好。但是,如果某个竞争对手想要Web 抓取网站并获取所有图像和产品描述怎么办?

我正在观察一些具有类似产品列表的网站,它们放置了验证码,因此“只有人类”才能阅读产品列表。缺点是……它对 Google、Yahoo 或其他“行为良好”的机器人是不可见的。

4

6 回答 6

2

您可以通过使用 whois(在命令行或网站上)检查访问者 IP 来发现 Google 和其他人正在使用的 IP 地址。然后,一旦你积累了一些合法的搜索引擎,就允许它们进入你的产品列表,而不需要验证码。

于 2009-02-25T21:28:41.277 回答
1

由于潜在的屏幕截图应用程序可以在标头中欺骗用户代理和 HTTP 引荐来源网址(用于图像)并使用类似于人类浏览器的时间表,因此不可能完全阻止专业刮板。但是您仍然可以检查这些东西并防止随意刮擦。除了在网站上注册之外,我个人觉得验证码很烦人。

于 2009-02-25T21:30:16.093 回答
1

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

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

于 2009-02-25T21:42:01.213 回答
0

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

基本过程是您通过查找在很短的时间内查看 2+ 不相关产品的 IP 地址来建立自己的爬虫 IP 的“黑名单”。这些 IP 很可能属于机器。然后,您可以对它们进行反向查找以确定它们是好(如 GoogleBot 或 Slurp)还是坏。

于 2009-09-16T23:38:27.827 回答
0

阻止网络爬虫并不容易,而避免误报则更加困难。

无论如何,您可以将一些网络范围添加到白名单中,并且不要向他们提供任何验证码。所有那些众所周知的爬虫:Bing、Googlebot、Yahoo 等。在爬取时总是使用特定的网络范围,并且所有这些 IP 地址都会解析为特定的反向查找。

几个例子:

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

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

雅虎IP 74.6.254.109 解析为 h049.crawl.yahoo.net

因此,假设“ *.googlebot.com ”、“ * .search.msn.com ”和“ *.crawl.yahoo.net ”地址应列入白名单。

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

话虽如此,我不认为验证码是针对高级爬虫的解决方案,因为诸如deathbycaptcha.com2captcha.com之类的服务承诺在几秒钟内解决任何类型的验证码。

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

于 2015-03-24T08:54:25.707 回答
-1

也许我过于简化了,但如果您担心服务器性能,那么提供 API 将减少对爬虫的需求,并为您节省带宽/带宽处理器时间。

此处列出的其他想法:

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

于 2009-09-17T02:17:37.990 回答