? ?最近自己做的項目需要解析第三方的網(wǎng)頁,up主找到Gumbom這個第三方框架朦促,感覺比較OK意乓,在這里分享給大家:Gumbom
? 要想做網(wǎng)頁數(shù)據(jù)解析,首先要了解一些基本概念:
? 我們可以理解對應網(wǎng)頁的數(shù)據(jù)成一個Document文檔洪己,里面的數(shù)據(jù)結(jié)構(gòu)是樹,所以會有節(jié)點概念竟贯,整個<html>..... </html> 中包含的東西就是DOM模型答捕,html標簽就是樹的根,其他有兄弟關(guān)系屑那,父子關(guān)系的節(jié)點
? 節(jié)點有:
? 元素節(jié)點(element node )如 p ul標簽等
? 文本節(jié)點 ?(text node ) 如<a>hello</a> 中的hello 就是
? 屬性節(jié)點 (attribute node ) 如 src title 等等這些屬性
給一個我使用的例子:
1拱镐,首先要集成 Gumbom到項目中,在對應的使用地方引入頭文件
2持际,獲取并創(chuàng)建對應的文檔對象
3,抓取節(jié)點對應的數(shù)據(jù):
? ?(1)根據(jù)節(jié)點id拿到對應的節(jié)點沃琅,如要拿 id = s_is_result_css 對應的節(jié)點,要同過方法:注意這樣通常找到是一個數(shù)組蜘欲,具體獲取數(shù)據(jù)還要進行校驗益眉,不然會崩潰哦
document.Query(@"#s_is_result_css")?
(2)如果是拿文本屬性,需要用到element.text(), 如果是拿節(jié)點屬性值芒填,則用 attr(@"src")等獲取,如下:
溫馨提醒:因為獲得的網(wǎng)頁里面很多地方標簽 屬性同名空繁,所以一定要數(shù)據(jù)處理的為空校驗
最后殿衰,附上語法表,有什么疑問可以多多交流