1. 程式人生 > >java爬蟲入門jsoup 框架

java爬蟲入門jsoup 框架

所需jar包

<dependency>
  <!-- jsoup HTML parser library @ http://jsoup.org/ -->
  <groupId>org.jsoup</groupId>
  <artifactId>jsoup</artifactId>
  <version>1.10.2</version>
</dependency>

使用示例程式碼


import org.jsoup.Jsoup;
import org.jsoup.helper.Validate
; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.IOException; public class html { public static void main(String[] args) throws IOException { // 直接從字串中輸入 HTML 文件 String html = "<html><head><title> 開源中國社群 </title></head>"
+ "<body><p> 這裡是 jsoup 專案的相關文章 </p></body></html>"; Document doc = Jsoup.parse(html); // 從 URL 直接載入 HTML 文件 Document doc1 = Jsoup.connect("http://www.oschina.net/").get(); String title = doc.title(); Document doc2 = Jsoup.connect
("http://www.oschina.net/") .data("query", "Java") // 請求引數 .userAgent("I ’ m jsoup") // 設定 User-Agent .cookie("auth", "token") // 設定 cookie .timeout(3000) // 設定連線超時時間 .post(); // 使用 POST 方法訪問 URL // 從檔案中載入 HTML 文件 // File input = new File("D:/test.html"); // Document doc = Jsoup.parse(input,"UTF-8","http://www.oschina.net/"); //獲取HTML頁面的Fav圖示 System.out.println("獲取HTML頁面的Fav圖示"); String favImage = "Not Found"; Element element = doc1.head().select("link[href~=.*\\.(ico|png)]").first(); if (element == null) { element = doc1.head().select("meta[itemprop=image]").first(); if (element != null) { favImage = element.attr("content"); } } else { favImage = element.attr("href"); } System.out.println(favImage); System.out.println("獲取HTML頁面的Fav圖示"); //獲取HTML頁面中的所有連結 System.out.println("獲取HTML頁面中的所有連結"); Elements links = doc1.select("a[href]"); for (Element link : links) { System.out.println("link : " + link.attr("href")); System.out.println("text : " + link.text()); } System.out.println("獲取HTML頁面中的所有連結"); //解析獲取圖片 System.out.println("解析獲取圖片"); Elements images = doc1.select("img[src~=(?i)\\.(png|jpe?g|gif)]"); for (Element image : images) { System.out.println("src : " + image.attr("src")); System.out.println("height : " + image.attr("height")); System.out.println("width : " + image.attr("width")); System.out.println("alt : " + image.attr("alt")); } System.out.println("解析獲取圖片"); // 獲取URL的元資訊 System.out.println("獲取URL的元資訊"); String description = doc1.select("meta[name=description]").get(0).attr("content"); System.out.println("Meta description : " + description); String keywords = doc1.select("meta[name=keywords]").first().attr("content"); System.out.println("Meta keyword : " + keywords); System.out.println("獲取URL的元資訊"); //在HTML頁面中獲取表單屬性 System.out.println("在HTML頁面中獲取表單屬性"); Element formElement = doc1.getElementById("loginForm"); Elements inputElements = formElement.getElementsByTag("input"); for (Element inputElement : inputElements) { String key = inputElement.attr("name"); String value = inputElement.attr("value"); System.out.println("Param name: " + key + " \nParam value: " + value); } System.out.println("在HTML頁面中獲取表單屬性"); } }