學習地址:http://www.jb51.net/article/43485.htmhtml
1、引入Jsoup jar包node
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.8.1</version> </dependency>
2、經過Jsoup獲取Document學習
一、爬取的page對象獲取url
//import org.jsoup.nodes.Document; Document doc = Jsoup.parse(page.getHtml().toString());
二、從一個URL加載一個Documentspa
Document doc = Jsoup.connect("http://www.jb51.net/").get();
String title = doc.title();
三、從一個文件加載一個文檔.net
Jsoup.parse(File in, String charsetName, String baseUri) 方法code
baseUri 參數用於解決文件中URLs是相對路徑的問題。若是不須要能夠傳入一個空的字符串。
File input = new File("/tmp/input.html"); Document doc = Jsoup.parse(input, "UTF-8", "http://www.jb51.net/");
3、使用DOM操做Documenthtm
查找能夠疊加,即doc.getElementById(String id).getElementsByTag(String tag);對象
Element ele = doc.getElementById(String id);//經過節點id獲取節點 Element ele = getElementsByTag(String tag);//經過節點名獲取節點 Element ele = getElementsByClass(String className);//經過class獲取節點 Elements ele = getElementsByTag(String tag);//經過節點名獲取節點列表
4、使用選擇器select操做Documentblog
Element ele = doc.select("div#keywordList");//經過id獲取,id惟一 Elements eles = doc.select("dic.ps-content");//經過class屬性獲取,存在多個用Elements接收 Element ele = doc.select("div.main-content").select("ul").select("li");//逐級獲取 Elements links = doc.select("a[href]"); //帶有href屬性的a元素 Elements pngs = doc.select("img[src$=.png]");//擴展名爲.png的圖片 //完整例子--獲取值 String url =ele.select("div.published").select("span.content-title").select("a").attr("href"); String publishDate =ele.select("div.published").select("span.time").text(); String browseCount = ele.select("td").get(2).text();
5、獲取元素數據
element.attr(String key);//獲取屬性attr(String key, String value)設置屬性 element.attributes();//獲取全部屬性 element.id();//獲取節點id element.className();//獲取class屬性名 element.classNames();//獲取節點全部class屬性 element.text();//獲取文本內容 element.text(String value);// 設置文本內容 element.html();//獲取元素內HTML element.html(String value);//設置元素內的HTML內容 element.outerHtml();//獲取元素外HTML內容 element.data();//獲取數據內容(例如:script和style標籤) element.tag();//獲取標籤對象 element.tagName();//獲取標籤名