jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套很是省力的API,可經過DOM,CSS以及相似於jQuery的操做方法來取出和操做數據。官網 中文文檔css
在爬蟲的時候,當咱們用HttpClient之類的框架,獲取到網頁源碼以後,須要從網頁源碼中取出咱們想要的內容,就能夠使用jsoup這類HTML解析器了。能夠很是輕鬆的實現。html
jsoup也支持從某個地址直接去爬取網頁源碼,目前支持HTTP,HTTPS協議。java
1)從一個URL,文件或字符串中解析HTMLnode
2)使用DOM或CSS選擇器來查找、取出數據jquery
3)可操做HTML元素、屬性、文本cookie
注意:jsoup是基於MIT協議發佈的,可放心使用於商業項目。框架
被解析的HTML能夠是一個HTML的字符串,能夠是一個URL,能夠是一個文件。dom
org.jsoup.Jsoup把輸入的HTML轉換成一個org.jsoup.nodes.Document對象,而後從Document對象中取出想要的元素。工具
org.jsoup.nodes.Document繼承了org.jsoup.nodes.Element,Element又繼承了org.jsoup.nodes.Node類。裏面提供了豐富的方法來獲取HTML的元素。post
從url獲取HTML解析
Document getDocument = Jsoup.connect("http://www.baidu.com").get();
Document postDocument = Jsoup.connect("http://exmple.com") .data("query", "java") .userAgent("Mozilla") .cookie("auth", "token") .timeout(3000) .post();
//經過id來獲取 getElementById(String id) //經過標籤名字來獲取 getElementsByTag(String tagName) //經過類名來獲取 getElementsByClass(String className) //經過屬性名字來獲取 getElementsByAttribute(String key) //經過指定的屬性名字,屬性值來獲取 getElementsByAttributeValue(String key, String value) //獲取全部元素 getAllElements()
Element類的方法:
public Elements select(String cssQuery)
獲取百度搜索按鈕value內容
String val = getDocument.select("#su").val();
或者
String su = getDocument.body().getElementById("su").val();
還有更多獲取元素的方法,建議仍是直接看官方文檔,畢竟那纔是最幹活的,我這裏只是簡單入門。