如何防止我的asp.net网站被屏幕刮掉?

时间:2010-04-24 17:16:00

标签: asp.net .net-3.5 screen-scraping

如何防止我的asp.net 3.5网站被我的竞争对手屏蔽掉? 理想情况下,我想确保没有webbots或screenscrapers可以从我的网站中提取数据。

有没有办法检测到有webbot或屏幕抓取器在运行?

8 个答案:

答案 0 :(得分:12)

可以尝试检测屏幕抓取器:

使用cookies和计时,这将使那些开箱即用的屏幕刮刀更难。还要检查javascript支持,大多数刮刀都没有。检查Meta浏览器数据以确认它确实是一个Web浏览器。

您还可以在一分钟内检查请求,驱动浏览器的用户每分钟只能发出少量请求,因此服务器上每分钟检测到过多请求的逻辑可能会导致屏幕抓取正在进行,阻止从违规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

答案 1 :(得分:8)

拔下网线连接到服务器。

释义:如果公众可以看到它,它就可以被删除。

更新:第二次看,似乎我没有回答这个问题。抱歉。 Vecdid提供了一个很好的答案。

但任何一半体面的编码都可能会破坏列出的措施。在这种情况下,我的答案可能被视为有效。

答案 2 :(得分:2)

如果没有对您网站的用户进行身份验证,我认为不可能。

答案 3 :(得分:1)

最终你无法阻止这一点。

通过设置robots.txt文件等,您可以让人们更难做到。但是您必须将信息传递到合法用户的屏幕上,以便以某种方式提供服务,如果它是您的竞争对手可以达到目的。

如果您强制用户登录,您可以随时停止机器人,但无论如何都无法阻止竞争对手注册您的网站。如果他们无法“免费”访问某些信息,这也可能会使潜在客户远离。

答案 4 :(得分:1)

如果您的竞争对手与您在同一个国家/地区,请在您的网站上明确发布可接受的使用政策和服务条款。提到您不允许任何类型的机器人/屏幕刮擦等事实。如果继续,请让律师向他们发送友好的停止和终止信。

答案 5 :(得分:1)

你可以使用CAPTCHA。

此外,您可以通过限制其连接来缓解它。它不会完全阻止它们进行屏幕抓取,但它可能会阻止它们获取足够的数据以使其有用。

首先,对于煮熟的用户,节流连接,这样你每秒最多可以看到一个页面视图,但是一旦你的一秒计时器启动,你就不会受到任何限制。对普通用户没有影响,对屏幕抓取工具有很大影响(至少如果你有很多目标网页)。

接下来,需要使用Cookie来查看数据敏感页面。

他们将能够进入,但只要你不接受虚假饼干,他们就无法以任何真正的速度进行筛选。

答案 6 :(得分:0)

我认为这不可行。但无论你想出什么,它对于搜索引擎优化和竞争对手一样糟糕。这真的很可取吗?

答案 7 :(得分:0)

如何将每一段文字作为图像提供?一旦完成,你的竞争对手将被迫投资OCR技术,或者你会发现你没有用户 - 所以这个问题没有实际意义。