java爬蟲入門jsoup 框架
阿新 • • 發佈:2018-11-08
所需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頁面中獲取表單屬性");
}
}