1. 程式人生 > >Jsoup常用方法功能介紹

Jsoup常用方法功能介紹

jsoup 是一款 Java 的HTML 解析器,可直接解析某個URL地址、HTML文字內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似於JQuery的操作方法來取出和操作資料

jsoup的主要功能如下:
從一個URL,檔案或字串中解析HTML; 
使用DOM或CSS選擇器來查詢、取出資料; 
可操作HTML元素、屬性、文字; 

jsoup解析
Jsoup提供一系列的靜態解析方法生成Document物件
static Document parse(File in, String charsetName)
static Document parse(File in, String charsetName, String baseUri)
static Document parse(InputStream in, String charsetName, String baseUri)
static Document parse(String html)
static Document parse(String html, String baseUri)   
static Document parse(URL url, int timeoutMillis)
static Document parseBodyFragment(String bodyHtml)
static Document parseBodyFragment(String bodyHtml, String baseUri) 
其中baseUri表示檢索到的相對URL是相對於baseUriURL的 
其中charsetName表示字符集

Connection connect(String url) 根據給定的url(必須是http或https)來建立連線

Connection 提供一些方法來抓去網頁內容
Connection cookie(String name, String value) 傳送請求時放置cookie 
Connection data(Map<String,String> data) 傳遞請求引數 
Connection data(String... keyvals) 傳遞請求引數
Document get() 以get方式傳送請求並對返回結果進行解析
Document post()以post方式傳送請求並對返回結果進行解析 
Connection userAgent(String userAgent) 
Connection header(String name, String value) 新增請求頭
Connection referrer(String referrer) 設定請求來源

jsoup提供類似JS獲取html元素:
getElementById(String id) 用id獲得元素
getElementsByTag(String tag) 用標籤獲得元素
getElementsByClass(String className) 用class獲得元素
getElementsByAttribute(String key)  用屬性獲得元素
同時還提供下面的方法提供獲取兄弟節點:siblingElements(), firstElementSibling(), lastElementSibling();nextElementSibling(), previousElementSibling()

獲得與設定元素的資料
attr(String key)  獲得元素的資料 attr(String key, String value) 設定元素資料 
attributes() 獲得所以屬性
id(), className()  classNames() 獲得id class得值
text()獲得文字值
text(String value) 設定文字值
html() 獲取html 
html(String value)設定html
outerHtml() 獲得內部html
data()獲得資料內容
tag()  獲得tag 和 tagName() 獲得tagname 

操作html元素:
append(String html), prepend(String html)
appendText(String text), prependText(String text)
appendElement(String tagName), prependElement(String tagName)
html(String value)

jsoup還提供了類似於JQuery方式的選擇器
採用選擇器來檢索資料
tagname 使用標籤名來定位,例如 a 
ns|tag     使用名稱空間的標籤定位,例如 fb:name 來查詢 <fb:name> 元素 
#id     使用元素 id 定位,例如 #logo 
.class     使用元素的 class 屬性定位,例如 .head 
*     定位所有元素 
[attribute] 使用元素的屬性進行定位,例如 [href] 表示檢索具有 href 屬性的所有元素 
[^attr] 使用元素的屬性名字首進行定位,例如 [^data-] 用來查詢 HTML5 的 dataset 屬性 
[attr=value]使用屬性值進行定位,例如 [width=500] 定位所有 width 屬性值為 500 的元素 
[attr^=value],[attr$=value],[attr*=value] 這三個語法分別代表,屬性以 value 開頭、結尾以及包含 
[attr~=regex]使用正則表示式進行屬性值的過濾,例如 img[src~=(?i)\.(png|jpe?g)] 
以上是最基本的選擇器語法,這些語法也可以組合起來使用

組合用法
el#id      定位id值某個元素,例如 a#logo -> <a id=logo href= … > 
el.class 定位 class 為指定值的元素,例如 div.head -> <div class=head>xxxx</div> 
el[attr] 定位所有定義了某屬性的元素,例如 a[href] 
以上三個任意組合     例如 a[href]#logo 、a[name].outerlink 

除了一些基本的語法以及這些語法進行組合外,jsoup 還支援使用表示式進行元素過濾選擇
:lt(n)     例如 td:lt(3) 表示小於三列 
:gt(n)     div p:gt(2) 表示 div 中包含 2 個以上的 p 
:eq(n)     form input:eq(1) 表示只包含一個 input 的表單 
:has(seletor)     div:has(p) 表示包含了 p 元素的 div 
:not(selector)     div:not(.logo) 表示不包含 class=logo 元素的所有 div 列表 
:contains(text)     包含某文字的元素,不區分大小寫,例如 p:contains(oschina) 
:containsOwn(text)     文字資訊完全等於指定條件的過濾 
:matches(regex)     使用正則表示式進行文字過濾:div:matches((?i)login) 

相關推薦

Jsoup常用方法功能介紹

jsoup 是一款 Java 的HTML 解析器,可直接解析某個URL地址、HTML文字內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似於JQuery的操作方法來取出和操作資料 jsoup的主要功能如下: 從一個URL,檔案或字串中解析HTML;  使用DOM或CSS選擇器來查詢、取出資料; 

ListView常用方法-案例介紹

for listen etl i++ from fin ase sim 加載 ***ListView的常用方法 實例:設置一個ListView的頁面,其頁面頭部是圖片,尾部是Button按鈕 方式一: 首先在對應的布局文件中添加ListView控件,然後可在主活動文件中對該

python爬蟲系列(1.1-urllib中常用方法介紹)

一、關於urllib中常用方法的介紹 1、urlopen網路請求 urlopen方法是網路請求的方法,預設是get請求,如果傳遞了data是post請求 from urllib import request  

python爬蟲系列(1.1-urllib模組常用方法介紹)

一、關於urllib中常用方法的介紹 1、urlopen網路請求 urlopen方法是網路請求的方法,預設是get請求,如果傳遞了data是post請求 from urllib import r

Highcharts,Highslide常用方法屬性介紹

在做資料報表時候,由於其相容性好,功能強大,Highcharts外掛是比較好的選擇。Highcharts支援大部分的圖表型別:直線圖,曲線圖、區域圖、區域曲線圖、柱狀圖、餅裝圖、散佈圖等等,並且對PC/Tablet/Phone的各種瀏覽器都支援的很好。下面結合專案說說Hig

深入學習Hibernate4_05hibernate中物件的四種狀態(臨時狀態,持久化狀態,遊離狀態,刪除狀態),以及常用方法介紹

是什麼?        站在持久化的角度, Hibernate 把物件分為 4 種狀態: 持久化狀態, 臨時狀態, 遊離狀態, 刪除狀態. Session 的特定方法能使物件從一個狀態轉換到另一個狀態.       臨時物件:1.在使用代理主鍵的情況下,OID通常為null

Web功能測試常用方法

技術分享 cnblogs mage 方法 web src 功能 分享 ges Web功能測試常用方法

C#中的Dictionary字典類常用方法介紹

remove span one style pre 獲取 all str 常用方法 1 using System.Collections.Generic;//引用命名空間//Dictionary可以理解為散列集合 2 public class DictionaryTe

介紹JQuery的基礎常用方法$()

數組 兄弟節點 例子 index bbc $() mage cto 技術分享 介紹JQuery的基礎常用方法$() 1. has()包含的意思舉例:第一個div包含了span,第二個沒有包含&

java基礎-Integer類常用方法介紹

-i java基礎 font ger 版權 spa 責任 創作 bsp                   java基礎-Integer類常用方法介紹                                   作者:尹正傑 版權聲明:原創作品,謝絕轉載!否則將追究

Java中的日歷類/集合類/數學類/正則表達式/數組工具類等的常用方法與基本功能

calendar類和Data類 Collection類和List 正則表達式regex Math類和Random類 System類和Iterator類 一、 Arrays 針對數組操作的工具類,提供了一些針對數組排序和二分搜索的方法。常用方法:1、public static String

ES6 promise 常用方法介紹

-a 一個數 msi LV 進行 es6 就是 介紹 回放 一:promise 知識點:.then() catch() resolve()返回成功的值 reject()返回失敗的值 用法:連續調用上次請求值做下一步操作 寫法: 在第一步方法裏面new 一個Promsie方

Java 集合之HashSet常用方法實例介紹

java args arr 子類 boolean 常用 地址 比例 可能 一.簡介HashSet是Set常見的子類對象,此類實現Set接口,由哈希表(實際為HashMap實例)支持。 對集合的叠代次序不作任何保證; 特別是,它不能保證訂單在一段時間內保持不變。這個類允許nu

Burpsuite神器下載及常用功能介紹

1.前言        近期集團公司對公司的產品進行了各種安全漏洞滲透掃描,然後組內同事各種安全漏洞修復,修復過程,經常需要自測,經過多方查詢與驗證,發現了一款非常方便做此功能的軟體,套用至尊寶的名言,如果上天只能讓我選擇一個 Web 掃描器,那麼我會

【轉載儲存】Jsoup解析html常用方法

首先我們要清楚 class的繼承關係 Document 繼承於  Element  繼承於 Node  繼承於 Object 首先 我們先研究一下 Element 中的函式作用: 01 addClass(String className)  

Android Socket 常用方法介紹

try {/***第一種:客戶端Socket通過構造方法連線伺服器***///客戶端Socket可以通過指定IP地址或域名兩種方式來連線伺服器端,實際最終都是通過IP地址來連線伺服器//新建一個Socket,指定其IP地址及埠號Socket socket = new Socket("192.168.

stream介紹,以及其常用方法的使用示例

  Stream 就如同一個迭代器(Iterator),單向,不可往復,資料只能遍歷一次,遍歷過一次後即用盡了,就好比流水從面前流過,一去不復返。 有多種方式生成 Stream Source: 從 Collection 和陣列 Collection.

js:Array物件常用方法介紹

前言 在js中,陣列作為一個特殊的物件。是我們常用的資料格式。今天就來梳理一下常用的陣列方法. 1.基礎 幾種基礎的就簡單介紹一下:建立陣列 var arr1 = new Array(); //括號可以傳參,指定陣列長度。目前arr1.length是0 var arr2 = new Array(3)

PyCharm的常用功能介紹,對於我菜鳥來說,這點功能暫時夠用了

1. 設定行號 在安裝PyCharm後,在程式碼編輯介面中是預設顯示行號的。但是有的讀者的PyCharm不現實行號,此時可以依次單擊File>Settings>Editor>General>Appearance, 在彈出的“Appearance”介面中勾選“Show

執行緒的常用方法介紹

start()與run()       start() 啟動執行緒並執行相應的run()方法       run() 子執行緒要執行的程式碼放入run()方法 我們會發現,呼叫start()方法才是 啟動一個新的執行