一、案例网址:
价格加密效果
二、解决方法:
1.找到对应的woff文件:
使用全局搜索:AlibabaSans102CustomFont
2.全局搜索Font文件:
下载woff文件到本地:https://webfontcdn.taobao.com/webfont/1f489de8-e9bc-4d96-93de-f475686639ab7375358770356543788.woff
点击直接下载woff文件
3.将woff文本转为xml文件:
使用Python代码将woff文件转换为xml文件
# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块
import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
def main(args):
pass
from fontTools.ttLib import TTFont
def woff_to_xml(woff_file, xml_file):
font = TTFont(woff_file)
font.saveXML(xml_file)
转换后的xml文件:
4.将网页的文本转换为16进制数据:
1.将页面上底层源代码的文字以16进制编码格式转换一下
2.打印出来的每一个16进制编码,对应,xml文件内的“code”属性,那么对应的“name”的值就是我们的数字英文状态
Python代码:
# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块
import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
def main(args):
pass
def encode_to_formatted_hex(string):
formatted_hex = ""
for char in string:
formatted_hex += "0x" + hex(ord(char))[2:] + " "
return formatted_hex.strip()
5.根据code提取对应的name值:
# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块
import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
def main(args):
pass
import xml.etree.ElementTree as ET
# 解析XML
def get_name(xml_path,xpath):
tree = ET.parse(xml_path) # 将XML文件替换为你的实际文件路径
root = tree.getroot()
# 使用XPath定位元素 .//map[@code='0x34']
maps = root.findall(xpath) # 使用相对路径
for map_node in maps:
code = map_node.get('code') # 将十六进制字符串转换为整数
name = map_node.get('name')
# print(f"code: {code}, name: {name}")
return name
xpath语法:.//map[@code='0x5b93']
6.设立数值字典:
使用code定位到对应的元素节点以后,获取对应的name属性值,然后name的属性值是对应“数字”的英文,可以用下边的字典关系,将对应的英文转换为数字;
{'period':'.','one':1,'two':2,'three':3,'four':4,'five':5,'six':6,'seven':7,'eight':8,'nine':9,'ten':10,'zero':0}