You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用requests模块提取网页加密邮箱失败,求解码方法

解密网页加密邮箱的Python实现

问题描述

从网页https://global-standard.org/find-suppliers-shops-and-inputs/certified-suppliers/database/search_result/38996提取邮箱时,邮箱被加密处理无法直接抓取。执行原有代码后仅得到加密调用语句:

emailProtector.addCloakedMailto("ep_586c4771", 1);

需要还原出目标邮箱fttextilegroup2017@gmail.com。

解决方案

这类邮箱加密通常将邮箱拆分为用户名和域名两部分,存储在对应元素的HTML属性中,通过前端JS动态拼接显示。只需提取这些属性并拼接即可还原邮箱。

实现代码

import requests
from bs4 import BeautifulSoup

link = 'https://global-standard.org/find-suppliers-shops-and-inputs/certified-suppliers/database/search_result/38996'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
}

# 请求网页
res = requests.get(link, headers=headers)
soup = BeautifulSoup(res.text, "html.parser")

# 定位加密邮箱的容器元素(ID对应加密调用中的ep_xxx)
email_element = soup.find(id="ep_586c4771")

# 提取存储邮箱的属性值
username = email_element.get("data-name")
domain = email_element.get("data-domain")

# 拼接为完整邮箱
target_email = f"{username}@{domain}"
print(target_email)  # 输出:fttextilegroup2017@gmail.com

原理说明

网页中的emailProtector脚本会通过addCloakedMailto方法,从指定ID的元素的data-name和data-domain属性中读取邮箱片段,动态拼接成完整邮箱并渲染。我们直接提取这两个属性值,就能绕过JS解密过程,直接得到原始邮箱。

内容的提问来源于stack exchange,提问作者SMTH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:00:59