java selenuim 对canvas进行截图

之前通过 jsoup 爬取一些静态的数据都可以

 

最近要爬一张动态渲染的地图      jsoup 爬不出来

 

只能用selenuim  打开浏览器截图了

 

selenuim 按照过程有点小坑

 

不知道为什么 需要按照额外的 guava 依赖  不然就报错

//        WebElement canvas = driver.findElement(By.className("show-map"));
//
// String tt = canvas.getScreenshotAs(OutputType.BASE64);


上面是最核心的 两行代码 找到对应元素 截图 转为base64

但是这样子做很不合理,虽然可以实现 但是并不准备这样做 打开浏览器 去截图实在是太慢 太占内存 太不合理了



最后的方案是交给前端用echarts 去渲染

给他 中国的geojson 再通过接口 告诉前端那个省需要染成什么颜色

最后截图 转为base64 发到后端 我将图片存入word

虽然感觉也有问题,但是总比打开浏览器强

最好是在后端渲染 生成图片 存入word 可是没有找到对应的工具


posted @ 2023-02-15 15:13  霸王龙168  阅读(56)  评论(0)    收藏  举报