1,查看頁面源代碼,使用css或者JQuery選擇器方式或元素節點選擇css
例如:html
或者寫成:Elements elements1 = Jsoup.connect("http://jb.999ask.com/jibing/ks/neike").get().select("ul.jbList li a");java
文檔的對象模型:node
Document
繼承Element
繼承Node
. TextNode
繼承 Node
.
2,利用Jsoup.Parse();解析文檔api
parse(String html, String baseUri)
這方法可以將輸入的HTML解析爲一個新的文檔 (Document),參數 baseUri 是用來將相對 URL 轉成絕對URL,並指定從哪一個網站獲取文檔。如這個方法不適用,你可使用 parse(String html)
方法來解析成HTML字符串如上面的示例。app
parseBodyFragment
方法建立一個空殼的文檔,並插入解析過的HTML到body
元素中。假如你使用正常的 Jsoup.parse(String html)
方法,一般你也能夠獲得相同的結果,可是明確將用戶輸入做爲 body片斷處理,以確保用戶所提供的任何糟糕的HTML都將被解析成body元素。網站
Document doc = Jsoup.parseBodyFragment(html);
Element body = doc.body();
Document.body()
方法可以取得文檔body元素的全部子元素,與 doc.getElementsByTag("body")
相同。this
3.解析本地的HTML文件編碼
可使用靜態 Jsoup.parse(File in, String charsetName, String baseUri)
方法: File 編碼
spa
baseUri
參數用於解決文件中URLs是相對路徑的問題。若是不須要能夠傳入一個空的字符串。
File input = new File("/tmp/input.html");建立一個File對象
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");
4.使用DOM遍歷一個文檔
Elements links = content.getElementsByTag("a");
for (Element link : links) {
String linkHref = link.attr("href");
String linkText = link.text();
}
* getElementById(String id)
* getElementsByTag(String tag)
* getElementsByClass(String className)
attr(String key)
獲取屬性attr(String key, String value)
設置屬性attributes()
獲取全部屬性可使用Element
中的HTML設置方法具體以下:
Element div = doc.select("div").first(); // <div></div>
div.html("<p>lorem ipsum</p>"); // <div><p>lorem ipsum</p></div>
div.prepend("<p>First</p>");//在div前添加html內容
div.append("<p>Last</p>");//在div以後添加html內容
//添完後的結果: <div><p>First</p><p>lorem ipsum</p><p>Last</p></div>
Element.html(String html)
這個方法將先清除元素中的HTML內容,而後用傳入的HTML代替。Element.prepend(String first)
和 Element.append(String last)
方法用於在分別在元素內部HTML的前面和後面添加HTML內容Element.wrap(String around)
對元素包裹一個外部HTML內容。6.設置元素的文本內容
可使用Element
的設置方法::
Element div = doc.select("div").first(); // <div></div>
div.text("five > four"); // <div>five > four</div>
div.prepend("First ");
div.append(" Last");
// now: <div>First five > four Last</div>
Element.text(String text)
將清除一個元素中的內部HTML內容,而後提供的文本進行代替Element.prepend(String first)
和 Element.append(String last)
將分別在元素的內部html先後添加文本節點。
對於傳入的文本若是含有像 <
, >
等這樣的字符,將以文本處理,而非HTML。
.