使用Jsoup實現java爬蟲(非原創)

1,查看頁面源代碼,使用css或者JQuery選擇器方式或元素節點選擇css

例如:html

或者寫成:Elements elements1 = Jsoup.connect("http://jb.999ask.com/jibing/ks/neike").get().select("ul.jbList li a");java

 

文檔的對象模型:node

  • 文檔由多個Elements和TextNodes組成 (以及其它輔助nodes:詳細可查看:nodes package tree).
  • 其繼承結構以下:Document繼承Element繼承Node. TextNode繼承 Node.
  • 一個Element包含一個子節點集合,並擁有一個父Element。他們還提供了一個惟一的子元素過濾列表。

 

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)

 

 

5.設置一個元素的HTML內容

可使用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>

6.設置元素的文本內容

可使用Element的設置方法::

 

Element div = doc.select("div").first(); // <div></div>

 

div.text("five > four"); // <div>five &gt; four</div>

 

div.prepend("First ");

 

div.append(" Last");

 

// now: <div>First five &gt; four Last</div>

 

 

對於傳入的文本若是含有像 <, > 等這樣的字符,將以文本處理,而非HTML。







 

 

 

 

.

相關文章
相關標籤/搜索