国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
Java與Selenium:完整截取任意高度HTML頁(yè)面
首頁(yè) web前端 js教程 如何使用Java和Selenium將不同高度的HTML頁(yè)面完整轉(zhuǎn)換為圖片?

如何使用Java和Selenium將不同高度的HTML頁(yè)面完整轉(zhuǎn)換為圖片?

Apr 04, 2025 pm 08:36 PM
ai webdriver red

Java與Selenium:完整截取任意高度HTML頁(yè)面

本文詳細(xì)介紹如何使用Java和Selenium庫(kù),克服高度限制,完整截取HTML頁(yè)面並將其轉(zhuǎn)換為圖片。 傳統(tǒng)方法在處理高頁(yè)面時(shí)容易出現(xiàn)內(nèi)容缺失,本文提供一種分段截圖並拼接的解決方案。 我們將使用JDK 8和Selenium-Java (3.141.59)版本進(jìn)行演示。

如何使用Java和Selenium將不同高度的HTML頁(yè)面完整轉(zhuǎn)換為圖片?

挑戰(zhàn):高頁(yè)面截圖的難題

對(duì)於較矮的頁(yè)面,直接截圖即可。但高頁(yè)面則不然。單純使用window.scrollby(0, x)滾動(dòng)並截圖,常常導(dǎo)致部分內(nèi)容丟失,例如某些行號(hào)的內(nèi)容可能無(wú)法完整顯示。

解決方案:分段截圖,完美拼接

我們的策略是將頁(yè)面分割成多個(gè)部分,分別截圖,最後再將這些圖片拼接成一張完整的長(zhǎng)圖。 關(guān)鍵在於每次滾動(dòng)的高度略小於截圖的高度,確保部分圖片重疊,避免內(nèi)容丟失。

步驟詳解:

  1. 環(huán)境配置:設(shè)置ChromeDriver路徑並配置Chrome選項(xiàng),啟用無(wú)頭模式(headless)提高效率,並設(shè)置窗口大小。

     String chromepath = "d:\\htmltoimg\\selenium\\chromedriver-win64\\chromedriver.exe";
    System.setProperty("webdriver.chrome.driver", chromepath);
    
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--headless");
    options.addArguments("--window-size=2160,1440");
    
    WebDriver driver = new ChromeDriver(options);
  2. 頁(yè)面加載與等待:加載HTML文件,並使用顯式等待確保頁(yè)面完全加載完畢。

     driver.get("file:///d:/htmltoimg/test.html");
    WebDriverWait wait = new WebDriverWait(driver, 15);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.tagName("body")));
  3. 計(jì)算截圖次數(shù):使用JavaScript獲取頁(yè)面總高度,並根據(jù)每次截圖的高度計(jì)算需要截圖的次數(shù)。

     JavascriptExecutor js = (JavascriptExecutor) driver;
    long pageHeight = (long) js.executeScript("return document.body.scrollHeight;");
    int captureHeight = 5000; // 每次截取的高度int numberOfScreenshots = (int) Math.ceil((double) pageHeight / captureHeight);
  4. 分段截圖與滾動(dòng):循環(huán)截圖,每次截圖後,使用JavaScript滾動(dòng)頁(yè)面。滾動(dòng)距離略小於截圖高度,確保重疊。

     int totalHeight = 0;
    List<file> files = new ArrayList();
    for (int i = 0; i </file>
  5. 圖片拼接:讀取所有臨時(shí)圖片,計(jì)算總寬度,並將圖片繪製到一個(gè)新的BufferedImage對(duì)像中。

     int width = 0;
    for (File file : files) {
        BufferedImage img = ImageIO.read(file);
        width = Math.max(img.getWidth(), width);
    }
    
    BufferedImage combinedImage = new BufferedImage(width, totalHeight, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g = combinedImage.createGraphics();
    
    int nowYIndex = 0;
    for (File file : files) {
        BufferedImage img = ImageIO.read(file);
        g.drawImage(img, 0, nowYIndex, null);
        nowYIndex = img.getHeight();
    }
    
    g.dispose();
    ImageIO.write(combinedImage, "PNG", new File("D:\\htmlToImg\\Selenium\\output\\merge.png"));

通過(guò)以上步驟,即可完整截取任意高度的HTML頁(yè)面,生成一張完整的圖片。 記得補(bǔ)充截圖和文件刪除的代碼,以及必要的異常處理。 此方法高效且可靠,解決了傳統(tǒng)方法在高頁(yè)面截圖時(shí)遇到的內(nèi)容缺失問(wèn)題。

以上是如何使用Java和Selenium將不同高度的HTML頁(yè)面完整轉(zhuǎn)換為圖片?的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

Laravel 教程
1600
29
PHP教程
1502
276
以太坊是什麼幣?以太坊ETH獲得的方式有哪些? 以太坊是什麼幣?以太坊ETH獲得的方式有哪些? Jul 31, 2025 pm 11:00 PM

以太坊是一個(gè)基於智能合約的去中心化應(yīng)用平臺(tái),其原生代幣ETH可通過(guò)多種方式獲取。 1、通過(guò)Binance必安、歐意ok等中心化平臺(tái)註冊(cè)賬戶(hù)、完成KYC認(rèn)證並用穩(wěn)定幣購(gòu)買(mǎi)ETH;2、通過(guò)去中心化平臺(tái)連接數(shù)字儲(chǔ)存,使用穩(wěn)定幣或其他代幣直接兌換ETH;3、參與網(wǎng)絡(luò)質(zhì)押,可選擇獨(dú)立質(zhì)押(需32個(gè)ETH)、流動(dòng)性質(zhì)押服務(wù)或在中心化平臺(tái)一鍵質(zhì)押以獲取獎(jiǎng)勵(lì);4、通過(guò)為Web3項(xiàng)目提供服務(wù)、完成任務(wù)或獲得空投等方式賺取ETH。建議初學(xué)者從主流中心化平臺(tái)入手,逐步過(guò)渡到去中心化方式,並始終重視資產(chǎn)安全與自主研究,以

Ethena財(cái)庫(kù)策略:穩(wěn)定幣第三帝國(guó)的崛起 Ethena財(cái)庫(kù)策略:穩(wěn)定幣第三帝國(guó)的崛起 Jul 30, 2025 pm 08:12 PM

目錄雙幣系統(tǒng)大逃殺真實(shí)採(cǎi)用仍未發(fā)生結(jié)語(yǔ)2023年8月,MakerDAO生態(tài)借貸協(xié)議Spark給出$DAI8%的年化收益,隨后孫割分批進(jìn)入,累計(jì)投入23萬(wàn)枚$stETH,最高佔(zhàn)Spark存款量15%以上,逼得MakerDAO緊急提案,把利率下調(diào)到5%。 MakerDAO的本意是“補(bǔ)貼”$DAI的使用率,差點(diǎn)變成孫宇晨的SoloYield。 2025年7月,Ethe

幣安Treehouse(TREE幣)是什麼?即將上線的Treehouse項(xiàng)目概述,代幣經(jīng)濟(jì)與未來(lái)發(fā)展分析 幣安Treehouse(TREE幣)是什麼?即將上線的Treehouse項(xiàng)目概述,代幣經(jīng)濟(jì)與未來(lái)發(fā)展分析 Jul 30, 2025 pm 10:03 PM

目錄什麼是Treehouse(TREE)? Treehouse(TREE)如何運(yùn)作? Treehouse產(chǎn)品tETHDOR——分散報(bào)價(jià)利率GoNuts積分系統(tǒng)Treehouse亮點(diǎn)TREE代幣和代幣經(jīng)濟(jì)學(xué)概述2025年第三季度路線圖開(kāi)發(fā)團(tuán)隊(duì)、投資者和合作夥伴T(mén)reehouse創(chuàng)始團(tuán)隊(duì)投資基金夥伴總結(jié)隨著DeFi的不斷擴(kuò)張,固定收益產(chǎn)品的需求日益增長(zhǎng),其作用類(lèi)似於債券在傳統(tǒng)金融市場(chǎng)中的作用。然而,在區(qū)塊鏈上構(gòu)建

以太坊(ETH) NFT 七日銷(xiāo)量近1.6億美元,貸款機(jī)構(gòu)借助 World ID 推出無(wú)擔(dān)保加密貸款 以太坊(ETH) NFT 七日銷(xiāo)量近1.6億美元,貸款機(jī)構(gòu)借助 World ID 推出無(wú)擔(dān)保加密貸款 Jul 30, 2025 pm 10:06 PM

目錄加密市場(chǎng)全景掘金熱門(mén)代幣VINEVine( 114.79%,流通市值1.44億美元)ZORAZora( 16.46%,流通市值2.9億美元)NAVXNAVIProtocol( 10.36%,流通市值3,576.24萬(wàn)美元)Alpha解讀過(guò)去7天以太坊鏈上NFT銷(xiāo)售額近1.6億美元,CryptoPunks居第一去中心化證明者網(wǎng)絡(luò)Succinct推出Succinct基金會(huì),或?yàn)榇鷰臫GE

索拉納幣(Solana)與 Base幣 創(chuàng)始人開(kāi)啟論戰(zhàn):Zora 上的內(nèi)容有"基本價(jià)值" 索拉納幣(Solana)與 Base幣 創(chuàng)始人開(kāi)啟論戰(zhàn):Zora 上的內(nèi)容有"基本價(jià)值" Jul 30, 2025 pm 09:24 PM

一場(chǎng)關(guān)於“創(chuàng)作者代幣”價(jià)值的唇槍舌戰(zhàn),席捲了加密社交圈。 Base與Solana兩大公鏈掌舵人罕見(jiàn)正面交鋒,圍繞ZORA和Pump.fun展開(kāi)激烈辯論,瞬間點(diǎn)燃CryptoTwitter的討論熱潮。這場(chǎng)火藥味十足的對(duì)峙,究竟從何而來(lái)?我們來(lái)一探究竟。爭(zhēng)議爆發(fā):SterlingCrispin對(duì)Zora發(fā)難風(fēng)波的導(dǎo)火索,是DelComplex研究員SterlingCrispin在社交平臺(tái)公開(kāi)砲轟Zora。 Zora是Base鏈上的社交協(xié)議,主打?qū)⒂脩?hù)主頁(yè)與內(nèi)容代幣化

Zircuit(ZRC幣)是什麼?如何運(yùn)作?ZRC項(xiàng)目概述,代幣經(jīng)濟(jì)與前景分析 Zircuit(ZRC幣)是什麼?如何運(yùn)作?ZRC項(xiàng)目概述,代幣經(jīng)濟(jì)與前景分析 Jul 30, 2025 pm 09:15 PM

目錄什麼是ZircuitZircuit如何運(yùn)作Zircuit的主要特點(diǎn)混合架構(gòu)AI安全EVM兼容性安全原生橋Zircuit積分Zircuit質(zhì)押什麼是Zircuit代幣(ZRC)Zircuit(ZRC)幣價(jià)格預(yù)測(cè)ZRC幣怎麼買(mǎi)?結(jié)語(yǔ)近年來(lái),為以太坊(ETH)Layer1網(wǎng)絡(luò)提供服務(wù)的Layer2區(qū)塊鏈平臺(tái)的利基市場(chǎng)蓬勃發(fā)展,主要原因是網(wǎng)絡(luò)擁堵、手續(xù)費(fèi)高和可擴(kuò)展性差。其中許多平臺(tái)使用上卷技術(shù),鏈下處理的多個(gè)交易批

炒幣怎樣才能避免做接盤(pán)俠?一定要警惕風(fēng)險(xiǎn)來(lái)臨 炒幣怎樣才能避免做接盤(pán)俠?一定要警惕風(fēng)險(xiǎn)來(lái)臨 Jul 30, 2025 pm 08:06 PM

要避免炒幣高位接盤(pán),必須建立市場(chǎng)認(rèn)知、風(fēng)險(xiǎn)識(shí)別與防禦策略三位一體的防禦體系:1. 識(shí)別牛市末期社交媒體激增、新幣暴漲後暴跌、巨鯨減持等信號(hào),熊市初期採(cǎi)用倉(cāng)位金字塔法則和動(dòng)態(tài)止損;2. 構(gòu)建信息分級(jí)(戰(zhàn)略/戰(zhàn)術(shù)/噪音)、技術(shù)驗(yàn)證(均線與RSI、深度數(shù)據(jù))、情緒隔離(三連虧停手、拔網(wǎng)線)三重濾鏡;3. 建立規(guī)則層(巨鯨追蹤、政策敏感型倉(cāng)位)、工具層(鏈上數(shù)據(jù)監(jiān)測(cè)、對(duì)沖工具)、系統(tǒng)層(槓鈴策略、USDT儲(chǔ)備)三層防禦;4. 警惕名人效應(yīng)(如LIBRA幣)、政策突變、流動(dòng)性危機(jī)等場(chǎng)景,通過(guò)合約核查、倉(cāng)位

為什麼幣安賬號(hào)註冊(cè)失敗?原因與解決方案 為什麼幣安賬號(hào)註冊(cè)失???原因與解決方案 Jul 31, 2025 pm 07:09 PM

幣安賬號(hào)註冊(cè)失敗主要由地區(qū)IP封鎖、網(wǎng)絡(luò)異常、KYC認(rèn)證失敗、賬戶(hù)重複、設(shè)備兼容問(wèn)題及系統(tǒng)維護(hù)導(dǎo)致,1使用非受限地區(qū)節(jié)點(diǎn)並確保網(wǎng)絡(luò)穩(wěn)定;2提交清晰完整的證件信息並匹配國(guó)籍;3採(cǎi)用未綁定過(guò)的郵箱註冊(cè);4清理瀏覽器緩存或更換設(shè)備;5避開(kāi)維護(hù)時(shí)段並關(guān)注官方公告;6註冊(cè)後立即啟用2FA、地址白名單與反釣魚(yú)碼,可實(shí)現(xiàn)10分鐘內(nèi)完成註冊(cè)並提升安全性達(dá)90%以上,最終構(gòu)建合規(guī)與安全閉環(huán)。

See all articles