基于ChromeDriver的网页转图片实现

头像数智先锋   创建 于 2025年08月09日356

原理:浏览器截图

step1:了解ChromeDriver

ChromeDriver详解:自动化控制Chrome浏览器

step2:小时牛刀

Java中使用ChromeDriver教程

tips:大于4.xx版本需要 jdk11

step3: 截图实现

java 复制代码
// 初始化
driver = initializeChromeDriver();

// 加载HTML内容
loadHtmlContent(driver, htmlContent);

// 获取页面尺寸信息
PageDimensions dimensions = getPageDimensions(driver);

// 执行分页截图
BufferedImage fullImage = captureFullPageImage(driver, dimensions);

// 转换为字节数组
byte[] imageBytes = convertImageToBytes(fullImage);

// 创建截图结果对象
ScreenshotResult result = new ScreenshotResult(imageBytes, dimensions.width, dimensions.height, imageUrl);

遇到问题

1、版本问题。大于4版本需要使用jdk11,本地Chrome版本和selenium-java版本不对应问题
2、截图不完整,只有第一页内容或者有多页内容重叠问题
3、右侧有滚动条影响美观

step4: 部署

本地测试OK后到部署还有一小段路要走,这里以selenium-java 3.141.59为例

1 软件包准备

1、浏览器安装包 google-chrome-stable_current_x86_64_sf.rpm
2、chromedriver:chromedriver.zip
3、字体:fonts
如果不装字体浏览器中的中文无法显示

其他版本可以前往 chrome-for-testing 下载

2 涉及的命令

bash 复制代码
mkdir /app/selenium
# 解压chromedriver
unzip -n /chromedriver-linux64.zip -d /app/selenium

chmod +x /app/selenium/chromedriver

#安装浏览器及依赖
yum install /app/selenium/vulkan-1.1.97.0-1.el7.x86_64.rpm  /app/selenium/vulkan-filesystem-1.1.97.0-1.el7.noarch.rpm -y

yum install /app/selenium/google-chrome-stable_current_x86_64_sf.rpm -y


# 解压字体文件
unzip -n /app/selenium/fonts.zip -d /usr/share/fonts/

# 中文字体是否成功安装
fc-list : family | grep -i "song\|hei\|yahei\|kai\|fang"

# 刷新字体
sudo fc-cache -fv

内容来源:专栏《AI应用开发》,基于ChromeDriver的网页转图片实现 查看原文