搭建 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM