jsoup 是一款 Java 的 HTML 解析器,可直接解析某個 URL 地址、HTML 文本內容。它提供了一套很是省力的 API,可經過 DOM,CSS 以及相似於 jQuery 的操做方法來取出和操做數據。css
jsoup 的API地址:http://tool.oschina.net/apidocs/apidoc?api=jsoup-1.6.3html
jsoup 的主要功能以下:java
jsoup 是基於 MIT 協議發佈的,可放心使用於商業項目。api
jsoup 的主要類層次結構以下圖所示:cookie
(一)文檔輸入post
1 String html = "<html><head><title> 開源中國社區 </title></head><body><p> 這裏是 jsoup 項目的相關文章 </p></body></html>"; 2 Document mDocument = Jsoup.parse(html);
Document mDocument2 = Jsoup.connect("http://www.oschina.net/").get();
String title = mDocument2.title();
Document mDocument3 = Jsoup.connect("http://www.oschina.net/") .data("query", "Java") //請求參數 .userAgent("I ’ m jsoup") //設置User-Agent .cookie("auth", "token") //設置cookie .timeout(3000) //設置連接超時時間 .post(); //使用POST方法訪問URL
File input = new File("C:/wamp/www/HtmlParser/1.html"); Document mDocument4 = Jsoup.parse(input, "utf-8","http://www.oschina.net/");
請你們注意最後一種 HTML 文檔輸入方式中的 parse 的第三個參數,爲何須要在這裏指定一個網址呢(雖然能夠不指定,如第一種方法)?由於 HTML 文檔中會有不少例如連接、圖片以及所引用的外部腳本、css 文件等,而第三個名爲 baseURL 的參數的意思就是當 HTML 文檔使用相對路徑方式引用外部文件時,jsoup 會自動爲這些 URL 加上一個前綴,也就是這個 baseURL。
例如: <a href=/project> 開源軟件 </a> 會被轉換成 <a href=http://www.oschina.net/project> 開源軟件 </a>。spa
(二)DOM方式解析並提取HTML元素.net
這部分涉及一個 HTML 解析器最基本的功能,但 jsoup 使用一種有別於其餘開源項目的方式——選擇器,咱們將在最後一部分詳細介紹 jsoup 選擇器,本節中你將看到 jsoup 是如何用最簡單的代碼實現。code
不過 jsoup 也提供了傳統的 DOM 方式的元素解析,看看下面的代碼:htm
// 從文件中加載 HTML 文檔 File input = new File("C:/wamp/www/HtmlParser/1.html"); Document mDocument4 = Jsoup.parse(input, "utf-8","http://www.oschina.net/"); Element content = mDocument4.getElementById("content-wrap"); Elements links = content.getElementsByTag("a"); for (Element link:links) { String linkHref = link.attr("href"); String linkText = link.text(); }
你可能會以爲 jsoup 的方法似曾相識,沒錯,像 getElementById 和 getElementsByTag 方法跟 JavaScript 的方法名稱是同樣的,功能也徹底一致。你能夠根據節點名稱或者是 HTML 元素的 id 來獲取對應的元素或者元素列表。
與 htmlparser 項目不一樣的是,jsoup 並無爲 HTML 元素定義一個對應的類,通常一個 HTML 元素的組成部分包括:節點名、屬性和文本,jsoup 提供簡單的方法供你本身檢索這些數據,這也是 jsoup 保持瘦身的緣由。
而在元素檢索方面,jsoup 的選擇器簡直無所不能,
(三)修改數據
(四)HTML文檔清理
(五)選擇器解析並提取HTML元素
===========================參考網址===========================
http://blog.csdn.net/fover717/article/details/8314217
http://www.ibm.com/developerworks/cn/java/j-lo-jsouphtml/
http://www.cnblogs.com/rhythmK/p/4037572.html
===========================參考網址===========================