Python爬虫如何应对Cloudflare邮箱加密?

execjs 是一个用于在 Python 中运行 JavaScript 代码的库。

1.pip安装相关模块:

pip install PyExecJS

 

2.分析Cloudflare解析的站点中邮箱加密算法(以下JS代码保存文件名称为 encode.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)
}

 

3. Python对Cloudflare邮箱加密数据进行解密

'''
	DES:Python爬虫如何应对Cloudflare邮箱加密
'''

import execjs

def get_js():
	f = open("./encode.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__':
	# <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="42232c36232021737071767774757a7b02252f232b2e6c212d2f">[email&#160;protected]</a></td>
	data_cfemail="42232c36232021737071767774757a7b02252f232b2e6c212d2f"			# antabc123456789@gmail.com
	print(get_des_psswd(data_cfemail))
	input("------ 请按任意键退出!------")

 

posted @ 2026-03-19 14:49  知秋's  阅读(2)  评论(0)    收藏  举报