3

很确定这个问题对大多数 web 2.0 支持者来说都是亵渎神明,但我确实认为有时你可能希望你的网站的某些部分被轻易地盗取到其他人的任意网络聚合器中。至少足够了,如果他们真的想要的话,他们需要被逼着用手去做。

我的想法是制作一个脚本,通过绝对坐标按照它们在各自段落中正常出现的顺序定位文本节点,然后将这些文本节点以随机、混乱的顺序存储在 DOM 中。当然,让这样的系统正常工作(正确的文本换行、对齐、样式等)似乎几乎类似于从头开始编写我自己的文档渲染器。

我还考虑将它与类似 CAPTCHA 的东西结合起来,以微妙的方式弄乱文本,以阻碍屏幕抓取工具,这些屏幕抓取工具可以简单地查看快照并识别字母或诸如此类的东西。但这可能是多虑了。

唔。有没有人设计出任何好的方法来做这样的事情?

4

9 回答 9

6

考虑到刮板无法读取的所有内容,搜索引擎也无法读取。话虽如此,您可以在页面加载后通过 Javascript 将内容注入到您的文档中。

于 2008-09-26T13:28:07.370 回答
4

请不要使用绝对定位来重组乱码。这不适用于移动设备、视障人士的屏幕阅读器和搜索引擎。

请不要添加验证码。它只会在人们看到您的网站之前把他们赶走。

您提出的任何解决方案都将是反网络的。互联网是关于分享的,你必须接受坏的和好的。

如果您必须做某事,您可能只想使用 Flash。我还没有看到链接农民抓取 Flash 内容。但是出于第一段中所述的所有原因,Flash 是反网络的。

于 2008-09-26T13:32:58.717 回答
3

您的想法也可能会破坏任何屏幕阅读器,因此您应该在搞砸订购之前检查可访问性要求/立法。

于 2008-09-26T13:27:55.123 回答
3

我见过在客户端使用 javascript 解密电视指南。它不会阻止确定的抓取工具,但会阻止大多数随意的脚本编写。

所有文本电视条目都是相似的ps10825('4VUknMERbnt0OAP3klgpmjs....abd26'),其中 ps10825 只是一个使用 ps10825 密钥调用其解密函数的函数。显然,每次都会生成密钥。

在这种情况下,我认为阻止 99% 的人使用 Greasemonkey 甚至 wget 脚本下载他们的电视指南而没有看到他们所有的广告就足够了。

于 2008-09-26T13:37:41.183 回答
1

要理解这一点,最好尝试抓取一些站点。我已经抓取了一些非常具有挑战性的网站,例如银行网站。我见过许多使抓取变得困难的尝试(例如加密、cookie 等)。归根结底,最好的防御是不可预测的加价。Scraper 最依赖于能够在标记中找到“模式”。一旦模式发生变化,抓取逻辑就会失败。刮板是出了名的易碎,而且经常容易损坏。

我的建议是,将不可见的标记随机注入您的代码中。特别是围绕可能有趣的内容。做任何你能想到的事情,让你的标记在每次调用时看起来都与刮板不同。

于 2009-08-16T20:51:07.020 回答
0

使用ImageMagick 之类的东西在SVG中渲染所有文本

于 2008-09-26T13:35:04.000 回答
0

Alexa.com 做了一些古怪的事情来防止抓取。去这里看看流量排名号 http://www.alexa.com/data/details/traffic_details/teenormous.com

于 2008-11-19T17:17:51.597 回答
0

这些技术中很少有会阻止确定的。Alexa 风格的垃圾 HT​​ML/CSS 掩码很容易解决(只需解析 CSS);AJAX/Javascript-DOM-insertion 也很容易解决,尽管表单真实性令牌使这变得更加困难。

我发现提供官方 API 是最好的威慑 :)

除此之外,将文本渲染为图像是阻止随意刮板的好方法(但仍然可行)

YouTube 还使用 javascript 混淆,这使得 AJAX 逆向工程更加困难

于 2009-08-26T18:39:15.600 回答
-1

只需通过 AJAX 调用加载所有 HTML,HTML 就不会“出现”在大多数屏幕抓取工具的 DOM 中。

于 2008-09-26T13:27:53.673 回答