解除网上禁止复制的一些办法

最近在网上搜歌词的时候碰到一些小鬼子的网站禁止复制禁止选择,这让我非常不爽。

好吧,如果你跟我说版权保护,请用japanese来吧。

举个例子http://www.kasi-time.com/这个网站,查动漫歌曲的时候这个网站还是相当全的,就是不能复制和选择

现在我们用chrome来看看他怎么封我们的,让大牛见笑了

以死宅标志歌曲only my railgun来说


在正常状态这个网站是屏蔽了ctrl A跟选择的


用chrome developer tool查看event


发现他在document,body,#center,上都加了listener

分别是document全域的onclick和onkeydown,body域上的oncontextmenu和onselectstart,#center域上的onmousedown

真是够无聊的,加怎么多


顺便说明一下,onclick处理鼠标点击事件,onkeydown处理键盘事件,oncontextmenu是右击事件,onselectstart处理鼠标选择文字事件,onmousedown处理左键按下


这个网站的数据是JS回调php,然后php再document.write出来的,所以单禁用JS是没有任何帮助的


现在我们来看看他的listener的实现

首先是ctrl A的全选,嗯,coder还好心标出来了,我知道你把Ctrl+A给ban了,谢谢


body域上的两个listener更加绝,直接return false;


center 域上的也是个return false;



看来还挺努力的啊,我们应该怎么办呢,直接给他全设成null



然后试试




嗯?其他地方都能选择了,为什么唯独中间我们要的部分不行呢?

歌词不能复制,我要旁边那些广告干嘛

我们继续查看这个div的属性



原来如此,你在CSS加了这个啊

果断设成auto,直接把前面勾取消也行

再试试



可以了,毫无压力。


换成firefox的时候,属性不同的原因,比如onselectstart叫做onselect,而且coder没写好firefox的所有函数,所以只要禁用body的oncontextmenu和#center的onmousedown就可复制


除了这个网站之外还有很多很多的网站想通过禁止select和ctrlA来防止我们复制他的数据,可是coder啊,你都把数据传到我本地来了,就像你都把妹子放到狼窝里了,还指望着能保住么,好吧,对于一般网民还是可能保得住的


总之他都传到本地来了,就算从html code里抠出来也是可以的,巧用文本编辑器和正则表达式可以轻松搞定


还有些网站为了不让人不复制,用spam code来加入垃圾,同样用正则表达式+文本编辑器可以轻松去除


最后说一下使用网络爬虫爬这些网站歌词的办法:


这里我用了httpfox,任何抓包或者chrome分析都可以




找到他存放歌词的文件地址,够简单,query string里的就是no是标示吧,而且这个标示就是网址上的no


好吧,那我们就不客气了,直接写个脚本发给这个网址


而且网址不验证客户端类型,省了我几行代码,不错


随手用python写了个脚本,顺利保存了歌词


如果需要保存名字和批量下载,写个htmlparser处理即可

import urllib
def main():
        response=urllib.urlopen('http://www.kasi-time.com/item_js.php?no='+'45162')
        text=response.read().replace('document.write(\'','').replace('<br>','\n').replace('&nbsp;',' ').replace('\');','')
        file=open('1.txt','w')
        file.write(text)
        file.close()


if __name__=='__main__':
        main()



以上均为无聊所做,大牛勿见笑

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值