1. 程式人生 > >君子性非異也 善假於物也(三) selenium+phantomjs java將淘寶網頁轉換成圖片,支援下拉重新整理

君子性非異也 善假於物也(三) selenium+phantomjs java將淘寶網頁轉換成圖片,支援下拉重新整理

1.本地安裝phantomjs,並且將bin加入環境變數path中

2.新建java專案,selenium和phantomjs的maven如下,driver有很多種,比如chromedriver等等,phtomjs作為無頭瀏覽器做動態爬蟲專案挺爽的

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.12.0</version>
</dependency>
<dependency> <groupId>com.codeborne</groupId> <artifactId>phantomjsdriver</artifactId> <version>1.2.1</version> </dependency>

3.下面是測試,這裡要設定userAgent,否則有的網頁無法識別你是何種瀏覽器,我這裡直接用的是49版本谷歌,也可以寫你自己的

PhantomJSDriver driver = null;
try {
    //設定必要引數
DesiredCapabilities dcaps = new 
DesiredCapabilities(); //ssl證書支援 dcaps.setCapability("acceptSslCerts", true); //截圖支援 dcaps.setCapability("takesScreenshot", true); //設定頭 dcaps.setCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"); //css搜尋支援
dcaps.setCapability("cssSelectorsEnabled", true); //js支援 dcaps.setJavascriptEnabled(true); //驅動支援 dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "C:\\Users\\fdd\\Desktop\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe"); //建立無介面瀏覽器物件 driver = new PhantomJSDriver(dcaps); driver.get("https://h5.m.taobao.com/?sprefer=sypc00"); int size = 100; for (int i = 0; i <= size; i++) { ((JavascriptExecutor) driver).executeScript("window.scrollBy(0, 100);");//觸發下拉重新整理 Thread.sleep(50); System.out.println(i); } File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(scrFile, new File("C:\\Users\\fdd\\Desktop\\phantomjs-2.1.1-windows\\bin\\baidu_selenium.png")); } finally { driver.close();//關閉瀏覽器 driver.quit();//注意呼叫 不quit會有多個driver程序 }

效果如下