Python爬取网页canvas图片时,出现跨域问题
def getpic():
js = f'return document.getElementsByTagName("canvas")[{0}].toDataURL("image/png");'
image_data = driver.execute_script(js) # 执行js代码得到图片数据
image_base64 = image_data.split(",")[1] # 获得base64编码的图片信息
image_bytes = base64.b64decode(image_base64) # 将base64转为bytes类型
with open('E:\滑动验证码/' + str(1) + '.jpg', 'wb') as f:
f.write(image_bytes)
print("图片保存到")
过不去,会报错Tainted canvases may not be exported.
设置img.crossOrign 表示允许跨域加载图片资源,但是如果服务器本身不允许跨域访问,那么这里的img.crossOrign 将不会解决任何问题。具体的解决方式在解决canvas跨域问题中有明确指出。如果你的服务器本身不支持跨域,那么可以尝试解决canvas跨域问题
https://www.alonehero.com/2018/10/18/canvas%E4%B8%AD%E8%B7%A8%E5%9F%9F%E9%97%AE%E9%A2%98%E7%9A%84%E8%A7%A3%E5%86%B3/
提到的解决方案。