在网上找了一篇比较好的文章,想复制保存到自己的笔记中,复制后出现了如下截图
想复制一点儿文字,都需要登录,还需要会员.
来分析下页面的前端JS吧
我用的是Google的浏览器:
该网站,鼠标右键点击以后的图如下:
正常的页面,鼠标右键点击以后的图片如下:
看来是劫持了正常的鼠标右键响应事件
打开Chrome的调试工具, F12打开
如图所示: 定位到 oncontextmenu
点击进入关键代码, 格式化JS
看了下默认返回值是false, 直接定位到关键的返回行
7536,7537行代码
在 7536行下断点
鼠标右键重新触发,执行到指定行
console中关键变量的值
isContentMenu 是 true
重新赋值 isContentMenu = false
运行后的效果如下:
原始的鼠标右键事件被还原回来了.
选中 页面的指定文字后, 出现复制的选择栏如下:
定位关键的copy事件:
格式化js,定位到关键行:9201行
简单分析下js,发现了一个关键变量;
isNotPayCopy
这个变量的名字很好理解了,没付款的用户不能copy
开始调试到指定行,直接更改变量的值
直接 isNotPayCopy = true
测试复制成功了
这种方法不多介绍了
多行复制的话,需要处理html, 也可以, 比较常用, 这里只是分析了下页面的js文件
主要介绍几点:
1, 页面原本的静态JS是加密的,想js替换的话,需要先解密,没有分析js的加密方式,未做替换操作
2, 这种反复制的方案,对爬虫的限制基本为零,主要目的是为了用户注册充值的.