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高端极品外围在线观看| 色妞www精品视频一级下载| 一级午夜a毛片免费视频| 色老头成人免费综合视频| 日本阿v视频在线观看| 国产成人久久av免费| 五月丁香六月综合缴清无码| 免费观看激色视频网站(性色)| 美女高清特黄a大片| 日本bbw搡bbbb搡bbbb| 国产a免费观看| 中文字幕乱人伦视频在线| 亚洲精品国产精品国自产网站| 狂野欧美性猛xxxx乱大交| 天堂网2018| 动漫美女被到爽流触手| а√天堂中文资源| 爆乳熟妇一区二区三区霸乳 | 亚洲国产日韩在线人成下载 | 奇米影视第四色在线| 人妻在线日韩免费视频| 国产香港明星裸体XXXX视频| 波多野结衣电影区一区二区三区| 色一情一乱一伦黄| 成年女人毛片免费视频| 国产欧美一区二区精品久久久| 亚洲aaa视频| 韩国一级毛片在线观看| 欧美又大粗又爽又黄大片视频黑人| 国产精品单位女同事在线| 久久精品麻豆日日躁夜夜躁| 青青草国产精品欧美成人| 把数学课代表按在地上c视频| 免费现黄频在线观看国产| 中文国产欧美在线观看| 韩国精品一区二区三区无码视频 | 在线www中文在线| 日韩美女片视频| 国产97在线观看| a在线观看欧美在线观看|