hpple 簡單使用

2022-02-07 22:15:06 字數 1232 閱讀 2073

最近專案使用到hpple,簡單說一下使用方式,做做筆記

let responsedata = response as! nsdata

let utf8html = responsedata.stringgbk().stringbyreplacingoccurrencesofstring("gb2312", withstring: "utf-8")

let doc:tfhpple = tfhpple.init(htmldata: utf8html.datausingencoding(nsutf8stringencoding))

let eles = doc.searchwithxpathquery("//h3/a")

eles.foreach(

}})

1.初始化資料

從server返回來的資料是gb2312編碼的文字(很蛋痛),所以必須得將其先轉換成utf編碼的格式

stringgbk的內部實現是這樣的

extension nsdata

}

在代用tfhpple的init之前,得注意header便簽的meta charset 屬性值,這貨只認utf-8

let utf8html = responsedata.stringgbk().stringbyreplacingoccurrencesofstring("gb2312", withstring: "utf-8")

具體是因為hpple使用的是libxml2這個庫

具體可以這看看官網的介紹

在獲取html字串後,就可以呼叫hpple的初始化方法

let doc:tfhpple = tfhpple.init(htmldata: utf8html.datausingencoding(nsutf8stringencoding))

2.查詢dom

我們使用類css選擇器的方式,下面這句話的意思是css選擇器中 h3>a

let eles = doc.searchwithxpathquery("//h3/a")

3.獲取屬性

text()獲取 element.html 中的內容,text可能返回nil 

獲取屬性 提供乙個 

ele.objectforkey

hpple使用幾個注意點

hpple功能有限,使用的時候要注意乙個原則 如果頁面複雜,節點較多,解析的html需要先擷取,xpath路徑盡可能短,使用簡單語法。xpath語法不再贅述,本文的話題是分析得到的乙個tfhppleelement陣列。對於陣列裡的某個tfhppleelement可能有如下結構 nodechildar...

簡單使用Git

1.登陸伺服器 git 伺服器位址 git xx.yy.zz.com.cn ssh p steven git xx.yy.zz.com.cn 密碼認證後 伺服器控制台下 cd mnt disk1 moblin kernel linux 2.6.29.y.git git branch 列出branch...

vector 簡單使用

vector是c 標準模板庫中的部分內容,它是乙個多功能的,能夠操作多種資料結構和演算法的模板類和函式庫。vector之所以被認為是乙個容器,是因為它能夠像容器一樣存放各種型別的物件,簡單地說,vector是乙個能夠存放任意型別的動態陣列,能夠增加和壓縮資料。為了可以使用vector,必須在你的標頭...