【影刀RPA】淘宝价格加密-解密步骤讲解

一、案例网址:

网址:https://tuerqifeimao.taobao.com/search.htm?q=too&searcy_type=item&s_from=newHeader&source=&ssid=s5-e&search=y&spm=a1z10.1.1996643285.d4916905&initiative_id=shopz_20230919

价格加密效果

二、解决方法:

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}

三、完整流程截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值