搭建 springboot selenium 网页文件转图片环境
1. 环境准备
需要有 chrome 浏览器 + chrome driver + selenium 客户端
离线 chrome 下载地址
# 64位 linux 系统 https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm # 64位 weindow 系统 http://www.google.cn/chrome/browser/desktop/index.html?standalone=1&platform=win64 # 32位 weindow 系统 http://www.google.cn/chrome/browser/desktop/index.html?standalone=1&platform=win # 官网 chromedriver http://chromedriver.storage.googleapis.com/index.html # 淘宝 chromedriver 镜像 https://npm.taobao.org/mirrors/chromedriver/
说明:chrome 和 chromedriver 版本需要一致
1.2 查看 chrome 版本信息。在chrome浏览器输入以下地址
chrome://version/
1.3 例如我选择的是
2. 将 chromedriver 放到 chrome 安装目录下
3. 在 springboot 项目中引入 selenium 依赖
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency>
4 网页整页转图片代码实现
public static void convertHtml2Image(String url) throws InterruptedException {
// 设置 chromedriver 地址 System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
// 关闭日志
System.setProperty("webdriver.chrome.silentOutput", "true");
//实例化一个Chrome浏览器的实例 ChromeOptions options = new ChromeOptions(); // 字符编码 utf-8 支持中文字符 options.addArguments("lang=zh_CN.UTF-8"); // 开启最大化 options.addArguments("–start-maximized"); options.addArguments("–no-sandbox"); // 开启无头模式 options.addArguments("--headless"); options.addArguments("--disable-gpu");
options.addArguments("--window-size=1920,1080");
options.addArguments("--silent");
// 关闭日志
options.addArguments("--disable-logging"); WebDriver driver = new ChromeDriver(options); driver.get(url); Thread.sleep(3000); int height = Integer.parseInt((String) ((JavascriptExecutor) driver).executeScript("return document.body.scrollHeight.toString()")); int width = Integer.parseInt((String) ((JavascriptExecutor) driver).executeScript("return document.body.scrollWidth.toString()")); driver.manage().window().setSize(new Dimension(width, height)); driver.manage().window().maximize(); //截屏操作 //截图到output File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); try { String desImage = UUID.randomUUID().toString() + ".png"; //复制内容到指定文件中 FileUtil.copyFile(scrFile, new File(desImage)); System.out.println(desImage); } catch (IOException e) { e.printStackTrace(); } driver.close(); }
参考文献:
https://blog.csdn.net/l707268743/article/details/80942246
https://www.cnblogs.com/sqy123/p/9057348.html#_labelTop
https://www.cnblogs.com/lfri/p/10542797.html
https://cloud.tencent.com/developer/ask/197199
https://blog.csdn.net/bpz31456/article/details/80455708
https://blog.csdn.net/MeGoodtoo/article/details/89042714
学习过程中,难免出错。如果您在阅读过程中遇到不太明白,或者有疑问。欢迎指正...联系邮箱crazyCodeLove@163.com
如果觉得有用,想赞助一下请移步赞助页面:赞助一下
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2019-08-07 现代操作系统读书笔记 2
2019-08-07 java8 中 ImageIO 读取 tiff 格式的图片失败
2018-08-07 webstorm 设置js或者html文件自动缩进为4个空格不生效
2017-08-07 资源加载说明