Jsoup-解析HTML工具(簡單爬蟲工具)

Jsoup-解析HTML工具(簡單爬蟲工具)

1、簡介

​ jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套很是省力的API,可經過DOM,CSS以及相似於jQuery的操做方法來取出和操做數據。官網 中文文檔css

​ 在爬蟲的時候,當咱們用HttpClient之類的框架,獲取到網頁源碼以後,須要從網頁源碼中取出咱們想要的內容,就能夠使用jsoup這類HTML解析器了。能夠很是輕鬆的實現。html

​ jsoup也支持從某個地址直接去爬取網頁源碼,目前支持HTTP,HTTPS協議。java

2、功能

1)從一個URL,文件或字符串中解析HTMLnode

2)使用DOM或CSS選擇器來查找、取出數據jquery

3)可操做HTML元素、屬性、文本cookie

注意:jsoup是基於MIT協議發佈的,可放心使用於商業項目。框架

3、使用

一、解析HTML

被解析的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解析

1.Get請求

Document getDocument = Jsoup.connect("http://www.baidu.com").get();

2.Post請求

Document postDocument = Jsoup.connect("http://exmple.com")
                .data("query", "java")
                .userAgent("Mozilla")
                .cookie("auth", "token")
                .timeout(3000)
                .post();

1.DOM獲取元素

//經過id來獲取
getElementById(String id) 
//經過標籤名字來獲取
getElementsByTag(String tagName)
//經過類名來獲取
getElementsByClass(String className)
//經過屬性名字來獲取
getElementsByAttribute(String key)
//經過指定的屬性名字,屬性值來獲取
getElementsByAttributeValue(String key, String value)
//獲取全部元素
getAllElements()

2.經過相似於css或jQuery的選擇器來查找元素

Element類的方法:

public Elements select(String cssQuery)

獲取百度搜索按鈕value內容

String val = getDocument.select("#su").val();

或者

String su = getDocument.body().getElementById("su").val();

還有更多獲取元素的方法,建議仍是直接看官方文檔,畢竟那纔是最幹活的,我這裏只是簡單入門。

相關文章
相關標籤/搜索