当前位置:  开发笔记 > 编程语言 > 正文

防止屏幕刮擦

如何解决《防止屏幕刮擦》经验,为你挑选了5个好方法。

关于屏幕抓取合法性的问题,即使是非法的人仍然会尝试,所以:

可以采用哪些技术机制来防止或至少抑制屏幕抓取?

哦,只是为了咧嘴笑,让生活变得困难,保留搜索引擎的访问权限可能会很好.我很可能在这里扮演魔鬼的拥护者,但有一个严重的基础点.



1> Bombe..:

你不能阻止它.


您必须向用户提供数据(以便他们可以使用您的页面).您必须不向用户提供数据(或者他们可以抓取数据).如果你还有其他问题,请咨询禅师,"因为这个软件人员没有想法.
好的,你可以做到.只是不输出任何东西.向您的用户显示空白页面.缺失完成:屏幕抓取被阻止!
"从不真实",另一个绝对...... :)
你_can_让它变得困难

2> benno..:

因此,一种方法是混淆代码(rot13,或其他东西),然后在页面中有一些javascript,类似于document.write(unobfuscate(obfuscated_pa​​ge)).但这完全打击了搜索引擎(可能!).

当然,这实际上并没有阻止那些想要窃取你的数据的人,但它确实让它变得更难.

一旦客户端拥有数据,它几乎是游戏结束,所以你需要在服务器端查看一些东西.

鉴于搜索引擎基本上是屏幕抓取器,事情很难.您需要了解屏幕刮刀和屏幕刮刀之间的区别.当然,你也只有正常的人类用户.所以这归结为一个问题,即你如何有效地将服务器分类为来自,一个好的屏幕刮板或一个坏的屏幕刮板的请求.

所以,开始的地方是查看你的日志文件,看看是否有一些模式允许你有效地对请求进行分类,然后确定模式,看看是否有某种方式,一个坏的屏幕刮板,知道这一点分类,可以隐藏自己看起来像人类良好的屏幕刮刀.

一些想法:

您可以通过IP地址确定好的屏幕抓取工具.

您可以通过并发连接数,每个时间段的连接总数,访问模式等来确定刮刀与人类.

显然这些都不是理想的或万无一失的.另一个策略是确定你可以采取什么措施,这些措施对人类不显眼,但(可能)对刮刀感到烦恼.一个例子可能是减慢请求的数量.(取决于请求的时间关键性.如果他们实时抓取,这将影响他们的最终用户).

另一方面是考虑更好地服务这些用户.很显然,他们正在抓狂,因为他们想要数据.如果您为他们提供了一种简单的方法,可以直接获取有用格式的数据,那么他们就可以更轻松地进行屏幕抓取.如果有一种简单的方法,则可以调节对数据的访问.例如:为请求者提供唯一密钥,然后限制每个密钥的请求数量,以避免服务器过载或每1000个请求收费等.

当然还有人会想要扯掉你,然后可能还有其他方法可以让他们失去理智,他们可能会开始非技术性的,并且需要合法的途径来维持下去.


我想我在答案中非常清楚地说:"当然,这实际上并没有阻止那些想要窃取你的数据的人".

3> 小智..:

我在这里写了一篇博客文章:http: //blog.screen-scraper.com/2009/08/17/further-thoughts-on-hindering-screen-scraping/

换句话说:

如果您在互联网上发布信息,有人可以获得它,这只是他们想要投入多少资源的问题.使所需资源更高的一些方法是:

图灵测试

车削测试最常见的实现是旧的CAPTCHA,它试图确保人类读取图像中的文本,并将其提供给表单.

我们发现大量网站实现了非常弱的CAPTCHA,只需几分钟即可到达.另一方面,有一些非常好的图灵测试实现我们会选择不处理,但是复杂的OCR有时可以克服这些,或许多公告板垃圾邮件发送者有一些聪明的技巧来克服这些.

数据作为图像

有时您知道数据的哪些部分是有价值的.在这种情况下,用图像替换这样的文本是合理的.与图灵测试一样,有OCR软件可以读取它,并且没有理由我们无法保存图像并让其他人稍后阅读.

然而,通常情况下,将数据列为没有文字替代的图像违反了美国残疾人法案(ADA),并且可以通过拨打公司法律部门的电话来克服.

代码混淆

使用像JavaScript函数这样的东西来显示页面上的数据虽然它不是HTML源代码中的任何地方,但这是一个很好的技巧.其他例子包括在页面中放置多产的,无关的评论,或者有一个以不可预测的方式命令事物的交互式页面(我想到的例子是使用CSS来使显示相同,无论代码的排列如何.)

CSS Sprites

最近我们遇到了一些例子,其中一个页面有一个包含数字和字母的图像,并使用CSS只显示他们想要的字符.这实际上是前两种方法的组合.首先,我们必须获取主图像并读取那里的字符,然后我们需要读取网站中的CSS并确定每个标记指向的字符.

虽然这非常聪明,但我怀疑这也会违反ADA,尽管我还没有测试过.

限制搜索结果

我们想要获得的大多数数据都是以某种形式出现的.有些很容易,提交一个空白表格将产生所有结果.有些人需要在表格中加上星号或百分比.最困难的是每次查询只会给你这么多结果的那些.有时我们只是创建一个循环,将字母表的字母提交给表单,但如果这太笼统,我们必须循环提交2或3个字母的所有组合 - 这是17,576个页面请求.

IP过滤

有时,勤奋的网站管理员会注意到来自特定IP地址的大量页面请求,并阻止来自该域的请求.但是,有许多方法可以通过备用域传递请求,因此这种方法通常不是非常有效.

网站修补

刮擦始终会关闭HTML中的某些内容.一些网站有资源不断调整他们的HTML,以便任何刮擦不断过时.因此,对于不断变化的条件不断更新刮痕变得成本无效.


我认为你的意思是OCR(光学字符识别)而不是ORC.魔兽世界太多了,伙计!

4> JamesSugrue..:

防止屏幕抓取非常困难,但如果你真的想,你可以经常更改HTML或经常更改HTML标签名称.大多数屏幕抓取工具通过使用字符串比较与标记名称或正则表达式搜索特定字符串等工作.如果您要更改底层HTML,它将使他们需要更改其软件.


Shiiiii没有提供有关防止屏幕抓取的好建议... como on ..不要让我的工作变得困难;)当页面变化太多时,我评估是否仍然需要他们的数据时+1.

5> Bill the Liz..:

这很难预防.问题是,网页是由一个程序(浏览器)进行解析,所以他们是非常容易刮掉.您可以做的最好是保持警惕,如果您发现您的网站被刮,请阻止违规计划的IP.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有