**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。
要求代码的问题必须证明对要解决的问题有最低限度的了解。包括尝试的解决方案,为什么它们不起作用,以及expected
结果。另请参阅:Stack Overflow question checklist
9年前就关门了。
Improve this question
如何防止我的asp.net 3.5网站被我的竞争对手屏幕抓取?理想情况下,我希望确保没有webbots或screenscrapers可以从我的网站提取数据。
是否有办法检测是否有网络机器人或屏幕抓取器正在运行?
8条答案
按热度按时间gc0ot86w1#
可以尝试检测屏幕刮擦器:
使用cookies和计时,这将使它更难为那些开箱即用的屏幕抓取器。也检查javascript支持,大多数抓取器没有它。检查元浏览器数据,以验证它是一个真正的网络浏览器。
您也可以在一分钟内检查请求,因为浏览器用户每分钟只能发出少量请求,所以服务器上的逻辑如果检测到每分钟有太多请求,就会认为屏幕抓取正在发生,并在一段时间内阻止来自违规IP地址的访问。如果这开始影响爬网程序,请记录被阻止的用户IP,并在需要时开始允许他们的IP。
你也可以使用http://www.copyscape.com/来保护你的内容,这至少会告诉你谁在重用你的数据。
也看到了这个问题:
Protection from screen scraping
也来看看
http://blockscraping.com/
关于屏幕抓取的不错文档:
http://www.realtor.org/wps/wcm/connect/5f81390048be35a9b1bbff0c8bc1f2ed/scraping_sum_jun_04.pdf?MOD=AJPERES&CACHEID=5f81390048be35a9b1bbff0c8bc1f2ed
如何防止屏幕刮擦:
http://mvark.blogspot.com/2007/02/how-to-prevent-screen-scraping.html
monwx1rj2#
拔下服务器的网线。
如果公众能看到它,它就能被刮走。
更新:再看一遍,似乎我没有回答这个问题。对不起。Vecdid已经提供了一个很好的答案。
但是任何一个稍微像样的编码都可能击败列出的措施。在这种情况下,我的答案可以被认为是有效的。
eoigrqb63#
我不认为这是不可能的,如果不验证用户到您的网站。
xzlaal3s4#
你可以用验证码。
你也可以通过限制他们的连接来缓解这种情况。这不会完全阻止他们进行屏幕抓取,但可能会阻止他们获得足够的有用数据。
首先,对于被cookies的用户,限制连接,这样你每秒最多只能看到一个页面,但是一旦你的一秒计时器到了,你就不会体验到任何限制。对普通用户没有影响,对屏幕抓取器有很大的影响(至少如果你有很多目标页面的话)。
接下来,需要Cookie来查看数据敏感页。
他们将能够进入,但只要你不接受假饼干,他们将无法与任何真实的的速度屏幕刮了很多。
pvcm50d15#
最终你无法阻止这一切。
你可以通过设置robots.txt文件等,让人们更难做到这一点。但是你必须让信息出现在合法用户的屏幕上,这样它就必须以某种方式得到服务,如果是这样的话,你的竞争对手就可以得到它。
如果你强迫用户登录,你可以随时停止机器人,但无论如何,没有什么可以阻止竞争对手注册你的网站。这也可能会赶走潜在客户,如果他们不能“免费”访问一些信息。
n7taea2i6#
如果你的竞争对手和你在同一个国家,有一个可接受的使用政策和服务条款清楚地张贴在你的网站上。提到你不允许任何机器人/屏幕抓取等的事实。如果继续这样做,让律师给他们发送一个友好的停止和终止信。
7uzetpgm7#
我不认为这是可能的。但是无论你想出什么,它对搜索引擎优化和竞争都是一样糟糕的。这真的是可取的吗?
8e2ybdfx8#
如果将每一段文字都作为图像提供,那又如何呢?一旦这样做了,要么你的竞争对手将被迫投资OCR技术,要么你将发现你没有用户--所以这个问题就没有意义了。