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

execjs 是一个用于在 Python 中运行 JavaScript 代码的库。要解决这个问题,你需要安装这个库,Python实现Cloudflare邮箱数据解密文章摘自: https://www.cnblogs.com

 

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-01-15 00:37  沉雪's  阅读(6)  评论(0)    收藏  举报