Python爬虫如何应对Cloudflare邮箱加密
作者:桜満三葉 发布时间:2023-10-16 22:25:35
标签:Python,爬虫,Cloudflare,邮箱,加密
最近写一个小爬虫,需要拿到邮箱信息,发现拿不到,也不是ajax接口。最后查资料发现是被Cloudflare加密起来了,有加密肯定有解密。
通过大佬https://www.jb51.net/article/189404.htm得到了加密算法。
参考大佬的原话搞起来就好:
柠之漠然:
这个解密方式就是从那段 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'))
来源:https://www.cnblogs.com/zy-mousai/p/13172350.html
0
投稿
猜你喜欢
- 前言: 上一篇讲了Python排序问题中比较经典的三个方法,(链接:关于Python排
- dim dr dr="2123123" dr1=Cint(dr) dr2=Clng(dr) 可参考如下函数说明: CIn
- 在编译 PHP 时,如无特殊需要,一定禁止编译生成 CLI 命令行模式的 PHP 解析支持。可在编译时使用 –disable-CLI。一旦编
- 这几天转了几个内容包含日语的贴,结果发现搜索数据库时出现“内存溢出”错误。上网搜索寻求答案未果。最后才发现这就是传说中的“日文 26 个片假
- 最近,某水果手机厂在万众期待中开了一场没有发布万众期待的手机产品的发布会,发布了除手机外的其他一些产品,也包括最新的水果14系统。几天后,更
- Altova 公司的 XMLSPY 是个不可多得的好东西,它几乎可以开发所有的 XML 产品。最近用它来做 Schema
- 1.经典类与新式类在了解Python的类与类型前,需要对Python的经典类(classic classes)与新式类(new-style
- 如何正确理解MIME类型?mime联系介绍。序号内容类型文件扩展名描述1application/msworddocMicrosoft Wor
- 本文实例讲述了php购物车实现方法。分享给大家供大家参考。具体分析如下:这里我们为你提供个简单的php购物车代码,从增加购物产品与发生购买了
- python字符串连接的方法,一般有以下三种:方法1:直接通过加号(+)操作符连接website = 'python' +
- 不夸张地说,XML正在接管这个世界,正在成为今天一切Web服务和大多数SOA的基础。XML本身并非一种技术,而是程序设计语言,可支持开发者为
- 今天先聊一聊在windows/mac iOS系统下用venv搭建python轻量级虚拟环境的问题。使用venv搭建的虚拟环境同virtual
- 如下图,我们在做图片logo列表的时候通常是用li标签来实现。html:<ul class="logolist&q
- 网页的圆角处理,其实最开始的九宫格的表格处理是挺方便的,只是现在都不用表格布局了,自然就被非法取缔了。呵呵。微软的有VML画圆角,由于只是它
- 本文实例讲述了php使用Cookie实现和用户会话的方法。分享给大家供大家参考。具体分析如下:PHP 包含了很多的函数,可以用来管理和记录用
- strftime()函数的用法strftime()函数可以把YYYY-MM-DD HH:MM:SS格式的日期字符串转换成其它形式的字符串。s
- PDO::inTransactionPDO::inTransaction — 检查是否在一个事务内(PHP 5 >= 5.3.3, B
- 一、配置webdriver下载谷歌浏览器驱动,并配置好import timeimport randomfrom PIL import Ima
- DatePart 的语法是 DatePart(interval, date),用以取 date 的某部分。 interval yyyy:da
- 外联接。外联接可以是左向外联接、右向外联接或完整外部联接。 在 FROM 子句中指定外联接时,可以由下列几组关键字中的一组指定:LEFT J