Python爬虫如何应对Cloudflare邮箱加密
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python爬虫如何应对Cloudflare邮箱加密,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1336字,纯文字阅读大概需要2分钟。
内容图文
![Python爬虫如何应对Cloudflare邮箱加密](/upload/InfoBanner/zyjiaocheng/624/5a4fd2bf8bb245148b5b37df6ddab3b1.jpg)
最近写一个小爬虫,需要拿到邮箱信息,发现拿不到,也不是ajax接口。最后查资料发现是被Cloudflare加密起来了,有加密肯定有解密。
柠之漠然:
这个解密方式就是从那段 js 代码转换过来的
其中最主要的一句话
for (e = ”, r = ‘0x' + a.substr(0, 2) | 0, n = 2; a.length – n; n += 2) e += ‘%' + (‘0' + (‘0x' + a.substr(n, 2) ^ r).toString(16)).slice( – 2);
前面的 2 位数字转化成 16 进制之后就是秘钥, 接下来的每两位字符跟秘钥异或操作之后转成16进制, 然后转换成字符
最后将所有解出来的字符拼成一起, 就得到邮箱 abc@abc.com 了
js 这边是用 urlencode 的方式
下面是复现的js解密代码:
function jiemi(val) { for (e = '', r = '0x' + val.substr(0, 2) | 0, n = 2; val.length - n; n += 2) e += '%' + ('0' + ('0x' + val.substr(n, 2) ^ r).toString(16)).slice(-2); return decodeURIComponent(e)}
然后通过python调用js完美搞定:
import execjs def get_js(): # f = open("./../js/my.js", 'r', encoding='utf-8') # 打开JS文件 f = open("./jiemi.js", 'r', encoding='utf-8') # 打开JS文件 line = f.readline() htmlstr = '' while line: htmlstr = htmlstr+line line = f.readline() return htmlstr def get_des_psswd(e): js_str = get_js() ctx = execjs.compile(js_str) #加载JS文件 return (ctx.call('jiemi', e)) #调用js方法 第一个参数是JS的方法名,后面的data和key是js方法的参数 if __name__ == '__main__': print(get_des_psswd(e='30515253705152531e535f5d'))
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
内容总结
以上是互联网集市为您收集整理的Python爬虫如何应对Cloudflare邮箱加密全部内容,希望文章能够帮你解决Python爬虫如何应对Cloudflare邮箱加密所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。