最近專案使用到hpple,簡單說一下使用方式,做做筆記
let responsedata = response as! nsdatalet 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,必須在你的標頭...