什麼是HtmlUnithtml
HtmlUnit是一個開源的瀏覽器模擬工具,能夠方便咱們模擬瀏覽器的行爲,例如打開網頁,提交表單等,這樣咱們能夠用他來爬網頁java
官網下載:http://htmlunit.sourceforge.net/ web
java API:http://htmlunit.sourceforge.net/apidocs/index.html api
怎麼用HtmlUnit瀏覽器
(個人IED是idea,用的maven工程)maven
在pom文件裏導入HtmlUnit的依賴包ide
<dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit</artifactId> <version>2.18</version> </dependency>
主要語法仍是比較簡單的
工具
下面是一個小demo網站
WebClient webClient = new WebClient(); HtmlPage htmlPage = null; try { htmlPage = webClient.getPage("http://sexy.faceks.com/"); }catch (IOException e) { e.printStackTrace(); } List<HtmlAnchor> list = (List<HtmlAnchor>)htmlPage.getAnchors(); for (HtmlAnchor htmlAnchor:list) { System.out.println(htmlAnchor.getHrefAttribute()); }
輸出的結果就是這樣,把網址裏全部<a>標籤的href屬性打印出來了,這樣取出來的網址又能夠繼續爬,因此就達到爬蟲的效果url
一接觸一個新工具,最怕裏各類不懂的新語法,新類,我把本身的理解簡單說哈,幫助理解,這個HtmlUnit是一個瀏覽器模擬器,既然是模擬器
WebClient就至關於瀏覽器了,因此第一步就new一個瀏覽器對象
HtmlPage就至關於具體瀏覽器裏打開的頁面吧,因此你能夠看到這樣的語法,webClient.getPage(),用瀏覽器對象WebClient根據傳參的url來獲取一個頁面,這樣得到的HtmlPage對象就是打開的頁面了,而後有這個對象,你就能夠隨心所欲了,頁面全部的標籤均可以搞了,我這裏demo搞得是HtmlAnchor,表示<a>標籤,其餘的能夠看官網的API,這不一一列舉了
有了這些小語法,把一個網站裏全部的圖片扒下來仍是沒問題的,我就把http://sexy.faceks.com/裏全部的妹紙圖搞下來了,4千多張,圖片很差發了,有興趣的朋友能夠本身試一下仍是挺好玩的
可是這種爬法仍是比較基礎的,沒有設計到表單和腳本之類的,以後可能要搞的就是提交表單,搞登錄,好比網上比較多的爬新浪微博,爬淘寶的,後面有機會我再總結,反正本身比較菜,就只有慢慢來搞了,先記錄下來,否則之後本身學着學着就忘了