阻止离线浏览器

有没有办法阻止在日志中显示为“Mozilla”的离线浏览器(如Teleport Pro,Webzip等)?

例如:Webzip在我的站点日志中显示为“Mozilla / 4.0(compatible; MSIE 8.0; Win32)”

Teleport Pro在我的站点日志中显示为“Mozilla / 4.0(compatible; MSIE 7.0; Windows NT)”

我做了一些使用.htaccess文件的testing,但是都以浏览器阻塞(Mozilla和Chrome)而告终,当然我不想阻挡正常的访问者,但是只是带有leechers(同时也吃了很多CPU / RAM他们的请求),加上看起来这个离线浏览器甚至忽略robots.txt文件。 任何人都知道一种方法来识别和阻止他们? 如果有可能给我举例。

简答:不

长答:…

大多数“离线浏览器”/ Scrapers只是下载稍后由浏览器处理的原始HTML / JS / CSS。 这些,如果他们的用户代理string看起来像合法的“在线浏览器”,所有你必须经过,因此不能阻止他们。

如果他们在他们的scrape上执行JavaScript(对于使用JavaScript来加载页面部分等的站点有用),那么你可以testing他们的JavaScript API,看看他们有什么function,并以这种方式定位它们。 然而,这是非常没有意义的,因为他们可能会使用其他合法浏览器也使用的WebKit系统。

一些Scrapers可能会遵守Robots.txt文件,但它们更可能是Google Search / Cache之类的刮板,而不是“离线浏览器”。

最后一种方法是使用下载隐藏的身份validation。 只要离线刮取器的用户没有提供经过validation的会话,这就是有效的。

希望帮助:)

我真的没有一个好的答案,只是一些想法。 但这是一个有趣的问题。 我不认为答案很简单,除非其他人已经花了大量的工作来编写程序。 如果他们不想告诉你他们是机器人,他们不需要。 你将不得不使用某种技巧来看看他们是否。

也许你可以在页面的顶部放一个隐形的链接,一个人不能跟随,然后阻止任何遵循它的人。

通过隐形,我的意思是把它放到一个HTML评论。 我不太了解离线浏览器,知道他们是否足够聪明,不要跟随html注释中的链接。

任何人每隔一秒钟就会按照一个新的链接,也是一个机器人。 阻止他们。

像这样的东西。

如果你需要保护你的大量下载,那么最好的办法就是把它们放在login后面。 正如你发现的那样,通过htaccess或机器人对用户代理进行阻塞会导致阻止合法通信的风险。