canvas是目前主要流行的网页图片制作元素,以下图为例,图片元素中仅包含canvas的画布信息,无法得到其中具体的数据。 此处介绍如何保存图片,想得到具体数据可查看主页另一篇文章。可以先将图片信息保存为base64格式数据信息,再解码为byte形式保存至计算机中。
js = f'''return document.getElementsByTagName("canvas")[{0}].toDataURL("image/png");'''
base64str = driver.execute_script(js)
page=base64str.split(',')[1]
imagedata = base64.b64decode(page)
with open(path+'\\'+"canvas.png", "wb") as f:
f.write(imagedata)
当有多个canvas图片,也可使用document.getElementByid/name()等方法精确定位,保存后图片如下: 然后是创建excel文档,我这里使用的是openpyxl库
import openpyxl,os
from openpyxl.drawing.image import Image
import Pillow
wb=openpyxl.Workbook()
sheet=wb['Sheet']
os.chdir(path)
img=Image("canvas.png")
img.width,img.height=(280,260)
sheet.add_image(img,'A1')
wb.save(path+'\\'+'canvas.xlsx')
wb.close()
运行结果如下: 可以看到此时图片是贴在excel中,并以A1为起始位置,并不是只占据A1单元格。
|