1.背景:供应商需要对商家的资质信息进行管理和监控,以确保平台上的商家都是合法合规经营的。供应店铺较多,故下载资质信息动作较为重复。
2.难点:图片src属性为base64编码,不能直接使用影刀下载,见下图
3.具体代码及流程
# 使用提醒:
# 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
import io
# 从 PIL 中导入Image类,用于后续图像处理
from PIL import Image
# 导入base64模块,用于base64编码和解码操作
import base64
# 导入Python的os模块,用于进行操作系统相关的功能
import os
# 在main函数中传入两个参数base64_string(获取到的src编码)、index(当前图片在循环中的位置)
def main(base64_string,index):
base64_string = base64_string
# 通过decode_base64_image函数将base64编码的图像字符串解码为Image对象
image = decode_base64_image(base64_string)
# 调用save_image函数将解码后的图像保存到指定路径
save_image(image, os.path.join(r"C:\Users\Lenovo\Desktop", str(index)+"_output.png"))
def decode_base64_image(base64_string):
# 使用base64.b64decode函数解码base64字符串,并将结果转换为Image对
image_data = base64.b64decode(base64_string.split(",")[1],altchars=None, validate=False)
# 将结果转换为Image对象
image = Image.open(io.BytesIO(image_data))
return image
def save_image(image, filename):
# 保存文件
image.save(filename, "PNG")
4.难点解决
src属性为:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLAA…H4AQAAAPgB+EH4b+H/A5Di%0AnZgTK829AAAAAElFTkSuQmC |
上方红色文字需要剔除,故在代码中需要将字符串分割截取后面内容,具体为以下代码:
image_data = base64.b64decode(base64_string.split(",")[1],altchars=None, validate=False)