网站内容复制(为什么CSS能禁止复制?CSS当中提供了一个属性的限制)
优采云 发布时间: 2022-03-20 20:16网站内容复制(为什么CSS能禁止复制?CSS当中提供了一个属性的限制)
本文内容仅供学习和技术研究之用。请不要将其用于邪恶。
白焕城
在部分网站s上,部分网站s会因版权或成长需求增加限制,防止网站内内容复制。作为内容创作者,我支持(出于版权原因必须选择)这样的行为。但另一方面,我也需要自己做一些笔记。对于长段落,显然我更适合直接复制原作者的内容。因此,我也不得不研究如何打破这种风格的束缚。
为什么 CSS 禁止复制?
CSS提供了一个属性user-select,可以用来设置是否可以选择文本。对于非技术人员,是不能选择的,自然不能用Ctrl+C来复制内容。在这种情况下,对于非技术人员,可以实现良好的复制保护。
但是,CSS 反复制并不是很常见。我见过的最多的是在 Javascript 中禁用复制和 Devtools 的方法。
该属性的值有以下五种,其中none用于防止复制。设置为None后,即使你的内容是文本内容,也无法选中,也无法直接使用Ctrl+C完成复制。text是选择文本,其他几个属性,可以在MDN中找到。
user-select: none;
user-select: auto;
user-select: text;
user-select: contain;
user-select: all;
使用 Stylish 打破 CSS 限制
类似于油猴脚本,可以在目标页面加载Javascript文件,Stylish可以在目标页面加载CSS,根据CSS计算权重,这样我们的代码就可以执行了。基于这个能力,我们可以覆盖原网页上的样式,将user-select的值修改为我们需要的值。
1. 安装时尚
前往 Google Chrome 扩展商店安装 Stylish
2. 找到无法复制的文字对应的样式类
在浏览器中打开开发者工具,找到需要复制的文本元素,在右侧调试工具中切换到“计算样式”,可以在里面找到user-select属性,就可以看到对应的样式类选择器,重复选择器。
3. 在Stylish中新建一个样式文件,并在里面添加对应样式类的代码
因为我们只需要修改副本,所以只需要对对应属性的值进行简单的修改即可。
4.设置生效网站
为了减少受此代码影响的页面,可以在下面的应用程序对象中设置有效的网站,从而减少对其他站点的影响。
总结
这个CSS中禁止复制的研究帮我节省了很多研究时间,有效的提高了我的研究效率,真是太好了!