破解网页禁止复制的方法

网页禁止复制相信大家早已司空见惯,身为网站运营者,禁止复制多是种无可奈何之举,毕竟千辛万苦的原创内容被他人任意复制,必然会想方设法采取一定手段防止。

然而Web前端自诞生之始,本身就是对外展示,前端技术日新月异,但防止用户复制内容,某种程度上而言本身是一种伪命题,背离前端之意~在现有的技术条件下,无法从根本上彻底杜绝复制,只能增加用户复制的成本。

实际上,破解网页复制的方法多种多样,你甚至根本无需借助其他工具,仅凭浏览器即可破除限制。

浏览器本身就可以破除网页复制
Web页面,无论前端技术如何,最终要经过浏览器渲染显示在用户眼前,网页元素及其内容“所见即可得”,而大部分的禁止复制,实际并无太高深,不借助任何第三方工具,仅通过浏览器即可完成。

例如国内的360doc,网站页面上屏蔽了浏览器原生的右键复制菜单,复制需要付费或者加入VIP,简直TM丧心病狂!

破解页面复制

要破除复制,通过下面这些浏览器自带的小技巧即可(以下均以Chrome浏览器)

1,浏览器禁用javascript

在网页中,javascript的重要性不言而喻,它是实现Web页面交互的关键,例如读取页面元素、点击事件等。网页中一般要禁用复制,绝大部分都是通过js代码实现的,因此,最简单的破除之法是直接禁用javascript,方法也有两种

【临时禁用】:在页面上直接按下F12快捷键打开开发者工具,在右上角的设置中选择禁用javascript。

禁用后,当前页面所有与js相关的功能全部失效,可自由复制内容。

禁用javascript

【黑名单禁用】在浏览器中,有一个全局禁用javascript的选项,由于JS在网页中极为重要,如果默认关闭,许多网页中正常的功能均会失效,如果你经常访问某个站点,需要复制他的内容,可以在设置中将其加入黑名单。

禁用javascript

设置后,仅针对指定的网站禁用javascript。

2,浏览器打印法:

浏览器通常自带打印功能,即将页面上的内容通过浏览器链接至打印机,在提供的打印预览窗口中,可以完整的查看当前页面的所有内容,你可以自由复制。

浏览器破解复制

开发者工具复制元素:

浏览器开发者工具,其主要帮助前端开发者用于网页布局、调试等,其中最主要的用法就是查看和编辑网页HTML。

通过它可以方便的查看网页上的任何元素,包括文字、图片等,对于被禁止复制的网页我们直接右键查看元素,定位到要复制的文字内容直接复制即可。

浏览器开发者工具

“万能”脚本书签,让不能复制去死吧
在前面的文章中,阿刚曾专门整理过一篇搜集到的各种脚本书签,其中有一段“破解复制”的脚本阿刚一直用到至今,因为它实在是太方便了。

简单来说,浏览器的书签本身可以运行javascript脚本,由于禁止复制的代码有一定共通性,可以专门编写一段js脚本来破解它,让其彻底失效。

直接拖动脚本:

javascript:!function e(t){function n(){}function o(e){e[i].removeChild(e)}function r(e){return.slice.call(t.querySelectorAll(e))}function c(t){function n(){s(function(){if(!o)try{var n=t.contentDocument;n.body.childNodes.length&&(o=1,e(n))}catch(e){o=0}},100)}a[l](function(e){t['on'+e]=null});var o;n(),t.onload=n}for(var i='parentNode',l='forEach',a='contextmenu dragstart selectstart select copy beforecopy mouseup mousedown'.split(' '),u=setTimeout(n,0);u>=0;u--)clearTimeout(u);for(u=setInterval(n,1e8);u>=0;u--)clearInterval(u);var s=setTimeout;setTimeout=setInterval=n,r('script')[l](o);var m=;r('iframe,frame')[l](function(e){m.push(e),e[i].replaceChild(t.createElement('script'),e)});var f=t.documentElement.innerHTML;t.open(),t.write('<!DOCTYPE html>'),t.close(),t.documentElement.innerHTML=f,r('script')[l](function(e){e[i].replaceChild(m.shift(),e)}),r('*')[l](c),c(t),a[l](function(e){t.addEventListener(e,function(e){e.stopPropagation()},!0)});var p=t.createElement('style');p.innerHTML='*{-webkit-user-select:text!important;-moz-user-select:text!important;user-select:text!important;}',t.body.appendChild(p)}(document); 到你的浏览器的书签栏上. 好像只支持firefox, 好像不支持chrome.

使用时,仅需在页面上点击这个书签,页面将自动刷新,你即可自由复制内容。

此段脚本能破解大部分网页的限制,包括文字、图片复制以及屏蔽页面右键菜单。

 

使用油猴脚本破解文库复制
网页禁止复制虽不能从根本上杜绝,但技术总是不断发展的,在一些完全以内容为赢利点的网站中,防用户复制是一场持久战,其所使用的防复制隐藏比较深,而且总是在不断变更,所以你有时会发现,破解复制看起来简单,可人家大厂认真起来,一般的手法变得毫无用处,让你真的“难以复制”

没错,咱说的就是国内主要的文库类站点,对于他们只能借助专门的脚本或工具。

破解百度文库复制

“文本选中复制”是一个在Github开源,已发布在GreasyFork上的油猴脚本,它支持的网站广泛,可以有效破解各种网页防复制,并且专门针对国内的文档/文库网站进行了适配,可以让你随心所欲“选中即可复制”。

目前主要支持:X度文库、道客巴巴、无忧考网、学习啦、蓬勃范文、思否社区、力扣、知乎、语雀等。

先简单科普:油猴是浏览器上一个扩展插件,它是一个脚本管理器,简而言之,你可以通过它安装脚本来增强和扩展浏览器的功能,从发布至今,它是真的备受用户推崇,已是浏览器必装插件之一。

油猴插件

1,安装油猴插件

目前油猴插件主要指Tampermonkey和Greasemonkey,相较而言,主流推荐使用Tampermonkey,它兼容性好,适用于Chrome, Microsoft Edge, Safari, Opera Next和 Firefox浏览器,通常在各大浏览器的应用商店中均可直接搜索安装。

安装油猴插件

2,访问GreasyFork安装脚本

GreasyFork是一个脚本发布站,它拥有海量的脚本资源,是目前最活跃的资源站。

直接搜索“文本选中复制”,安装脚本即可。

脚本的效果立竿见影,尤其针对某文库,可以去掉它的右键菜单,选中就可以复制。

最后
页面防复制,我真的觉得这是一件相当傻X的事,许多页面的手段实在是简单至极,仅依靠浏览器自身功能就可完全破解,阿刚只是介绍了最简单的几种,方法还有很多,比如开阅读模式、网页翻译等等都可以做到,而像文库网站这种想方设法设置的高明招数,其实也只是给前端工作者出了一道可解的练手题目而已。

就算你页面靠技术彻底不能复制了,我TM手机拍照,OCR识别行不行?截图识别行不行?

现在很多所谓的下文库之法不都是这么干的么?毕竟都已经是放在眼前让人看的东西了,能防住个什么?也就是防防懒人和电脑小白了.

--------------------------------------------------------------


万能代码,一招破解网页禁止复制

大家平时上网一定遇到过网站禁止复制文字的情况,对于这种做法,同作为站长阿刚表示理解,毕竟千辛万苦原创文字被他人随意复制剽窃,自然会采取一些手段防止。

然而禁止用户复制网页文字,实际上算是个伪命题,现有技术手段不能从根本上防止此类情况,只能增加用户复制的成本,国内的一些网站,诸如百度文库、360doc等均采用了一定的技术防止文字直接被复制,必须注册账号才能复制内容,更甚者复制还需要付费,用户体验极差。

一串代码轻松搞定页面复制

目前解决网页复制问题方法较多,其中有不少油猴脚本、浏览器插件,不过解决这种小问题杀鸡焉用牛刀,只需要一行代码就可以轻松解决。

只需将下面这串代码保存成书签或者鼠标选中后拖放在浏览器书签栏,在禁止复制的页面上点击这个书签刷新页面就可以复制了。

javascript:!function e(t){function n(){}function o(e){e[i].removeChild(e)}function r(e){return.slice.call(t.querySelectorAll(e))}function c(t){function n(){s(function(){if(!o)try{var n=t.contentDocument;n.body.childNodes.length&&(o=1,e(n))}catch(e){o=0}},100)}a[l](function(e){t['on'+e]=null});var o;n(),t.onload=n}for(var i='parentNode',l='forEach',a='contextmenu dragstart selectstart select copy beforecopy mouseup mousedown'.split(' '),u=setTimeout(n,0);u>=0;u--)clearTimeout(u);for(u=setInterval(n,1e8);u>=0;u--)clearInterval(u);var s=setTimeout;setTimeout=setInterval=n,r('script')[l](o);var m=;r('iframe,frame')[l](function(e){m.push(e),e[i].replaceChild(t.createElement('script'),e)});var f=t.documentElement.innerHTML;t.open(),t.write('<!DOCTYPE html>'),t.close(),t.documentElement.innerHTML=f,r('script')[l](function(e){e[i].replaceChild(m.shift(),e)}),r('*')[l](c),c(t),a[l](function(e){t.addEventListener(e,function(e){e.stopPropagation()},!0)});var p=t.createElement('style');p.innerHTML='*{-webkit-user-select:text!important;-moz-user-select:text!important;user-select:text!important;}',t.body.appendChild(p)}(document);

这串代码基本能破解98%的限制,包括文字、图片复制以及屏蔽页面右键菜单,将其保存到书签里使用起来相当的方便。

破解网页复制
浏览器开发者工具解决复制问题

众所周知,浏览器按下快捷键F12会调用出开发者工具,其主要帮助前端开发者用于网页布局、调试脚本、网页抓包等,其中最主要的用法就是查看和编辑网页布局(HTML+DIV)

通过它可以方便的查看网页上的任何元素,包括文字、图片等,对于被禁止复制的网页我们直接右键查看元素,定位到要复制的文字内容直接复制即可。

一般情况我们使用上面那串代码基本都可以解决复制问题,有些网站太变态可能不奏效,如果页面右键、快捷键F12同时被禁止,这种情况我们只需打开任意一个网站,按下快捷键F12调出开发者工具,然后同一窗口刷新打开你想复制的网站即可,通过这种方法,没有无法复制的内容。

页面禁止复制文字这种设定简直是蠢到家,随便搞一下就被破解了,而且对用户体验极差,换成我如果一个网站不让复制文字,下次再也不会去浏览。如果你是个站长,记住一句话,无耻的人想复制你的文章,怎么都能搞到,不要白费力气了。
巧用浏览器开发者工具-滚动截图

既然说到了开发者工具就多说一点,实际上善用它可以方便许多操作,例如截图动作。截图工具相当多,一般大家用QQ截图足够满足日常应用,美中不足的是不支持滚动截图,譬如我想截取一张乐软博客首页的完整截图,如何快速操作?

其实用谷歌浏览器的开发工具可以轻松做到,开发工具为了方便开发者查看不同设备前端页面,内置了一个不同设备模拟器,比如你可以查看iPhone 6/7/8 Plus下的页面显示,这样可以更加方便的调试网页。

浏览器开发者工具

工具本身是提供了一个截图选项的,你可以截图当前视图、或者截图整个页面,也就是说可以很方便的滚动截取整个页面。

它截取的是当前设备下显示的页面,除了内置的几个常见设备外,我们还可以自定义设备,比如阿刚就专门设置一个PC端的设备,分辨率1920*1080,这样有时候要截图的时候用它就可以了,完全不需要什么其他截图插件,方便的一比。

写在后面

页面禁止复制内容我想大家早已司空见惯,解决这个问题并不是什么难事,前些天偶尔访问了下360doc这个站,很早很早之前就知道这个站是注册才能复制的,没想到现在复制文字居然收费了,其实这种不让复制的网站见的也是很多了,我真是觉得很蠢的一种做法。

这没什么技术含量,用的方便就行.