java selenium+ChromeDriver抓取網頁長截圖全過程 親測有效

    廢話不多說嗷,直接上代碼,這個是在借鑒的基礎上改的,找不到原版了,所以此處就不@了 首先準備下載工具 chromedriver.exe 此處是一定要跟自己的goole版本對應嗷,我這谷歌版本是最新

    廢話不多說嗷,直接上代碼,這個是在借鑒的基礎上改的,找不到原版了,所以此處就不@了

    首先準備下載工具chromedriver.exe此處是一定要跟自己的goole版本對應嗷,我這谷歌版本是最新的,所以下載是118版本的

    chromedriver.exe 大概就是下面這個東西

    java selenium+ChromeDriver抓取網頁長截圖全過程 親測有效_chrome

    引入maven依賴:

            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-chrome-driver</artifactId>
                <version>3.141.59</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>27.0-jre</version>
            </dependency>

    下邊就開始貼代碼:

    第一步一定要成功,不然后續你沒法測試效果,我在這就卡了一會。

    System.setProperty("webdriver.chrome.driver",  "d:\\chromedriver-win64\\chromedriver.exe");
    //下邊這一步一定要成功,不然很無厘頭,其實主要就是版本的問題
    ChromeDriver driver = new ChromeDriver(options);

    第二部設置ChromeOptions 放入到第一步的ChromeDriver中

            ChromeOptions options = new ChromeOptions();
            //ssl證書支持
            options.setCapability("acceptSslCerts", true);
            //截屏支持
            options.setCapability("takesScreenshot", true);
            //css搜索支持
            options.setCapability("cssSelectorsEnabled", true);
            //設置瀏覽器參數
            options.addArguments("--headless");
            options.addArguments("--no-sandbox");
            options.addArguments("--disable-gpu");
            options.addArguments("--disable-dev-shm-usage");
            options.setHeadless(true);

    第三步開始設置超時以及獲取網頁URL部分了

            //設置超時,避免有些內容加載過慢導致截不到圖
            driver.manage().timeouts().pageLoadTimeout(1, TimeUnit.MINUTES);
            driver.manage().timeouts().implicitlyWait(1, TimeUnit.MINUTES);
            driver.manage().timeouts().setScriptTimeout(1, TimeUnit.MINUTES);
    
            driver.get("https://www.gov.cn");

    第四步獲取網頁寬度,這里我這個方法不太好用所以我把寬度設置成固定寬度 1920

    int maxWidth = 1920;
    //獲取頁面高度這塊是有點小難度,需要有點前端經驗,此處不清楚可以評論留言
    long pageHeight =(long)jsExecutor.executeScript("return Math.max(document.body.scrollHeight, 
                                                   document.body.offsetHeight, 
                                                   document.documentElement.clientHeight, 
                                                   document.documentElement.scrollHeight, 
                                                   document.documentElement.offsetHeight );")
     //此處獲取的基本是網頁當前高度,這邊寫了一個適配各種網頁的js方法來獲取網頁的滾動高度效果如下,
      上邊代碼實現不了下邊圖片的效果,有需要請留言評論。

    java selenium+ChromeDriver抓取網頁長截圖全過程 親測有效_java_02

    第五步設置窗口高度進行截圖處理

            //設置窗口寬高,設置后才能截全
            driver.manage().window().setSize(new Dimension(maxWidth, Integer.parseInt(pageHeight+"")));
    
            // 創建長截圖
            File screenshotFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
            FileUtils.copyFile(screenshotFile, new File("D:/html.png"));

    第六步關閉瀏覽器即可

    driver.quit();

    以上就是獲取網頁長截圖的方法,親測有效。歡迎咨詢!感謝各位留言點贊。

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 国产在线第一区二区三区| 日产精品久久久一区二区| 久久久91精品国产一区二区三区| 亚洲av无码一区二区三区不卡| 无码中文人妻在线一区 | 亚洲熟妇AV一区二区三区宅男| 日本一区二区三区不卡视频中文字幕| 国产精品视频一区二区噜噜| 国产精品丝袜一区二区三区| 无码毛片一区二区三区中文字幕| 久久人妻内射无码一区三区 | 亚洲日韩国产精品第一页一区| 亚欧色一区W666天堂| 亚洲国产av一区二区三区| 成人精品一区二区三区中文字幕 | 午夜视频在线观看一区二区| 蜜芽亚洲av无码一区二区三区| 日韩动漫av在线播放一区| 精品乱人伦一区二区三区| 成人精品视频一区二区| 国语精品一区二区三区| 日韩一区二区三区不卡视频| 久久久精品人妻一区二区三区 | 一区二区三区日本电影| 日本精品无码一区二区三区久久久 | 国产伦理一区二区三区| 国产激情一区二区三区 | 亚洲一区二区三区播放在线| 一区二区三区无码视频免费福利| 亚洲AV无码一区二区三区鸳鸯影院| 无码人妻精品一区二区三区东京热| 国产精品污WWW一区二区三区| 国产精品无码一区二区三区不卡| 在线中文字幕一区| 国产成人无码精品一区二区三区| 国产一区二区精品久久凹凸| 精品一区二区三区免费毛片| 在线日韩麻豆一区| 日韩精品一区二区三区中文3d| 精品人妻无码一区二区色欲产成人| 亚洲精品一区二区三区四区乱码|