国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python爬蟲(chóng)之xlml解析庫(kù)(全面了解)

2020-02-16 02:01:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1.Xpath

Xpath是一門(mén)在XML中查找信息的語(yǔ)言,可用來(lái)在XML文檔中對(duì)元素和屬性進(jìn)行遍歷。XQuery和xpoint都是構(gòu)建于xpath表達(dá)之上

2.節(jié)點(diǎn)

父(parent),子(children),兄弟(sibling),先輩(ancetstor),后代(Decendant)

3.選取節(jié)點(diǎn)

路徑表達(dá)式

表達(dá)式 描述 路徑表達(dá)式 結(jié)果
nodename 選取此節(jié)點(diǎn)上的所有的子節(jié)點(diǎn) bookstore 選取bookstore元素的所有子節(jié)點(diǎn)
/ 從根節(jié)點(diǎn)上選取 /bookstore 選取根元素bookstore,為絕對(duì)路徑
// 從匹配選擇的當(dāng)前節(jié)點(diǎn)選擇文檔中的節(jié)點(diǎn),不考慮位置 //book 選取所有的book子元素,而不管他們?cè)谖臋n的位置
. 選取當(dāng)前節(jié)點(diǎn) bookstore//book 選擇bookstore后代中所有的book元素
.. 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)
@ 選取屬性 //@lang 選取名為lang的所有屬性

謂語(yǔ)

  謂語(yǔ)用來(lái)查找某個(gè)特定的節(jié)點(diǎn)或者包含某個(gè)指定的值的節(jié)點(diǎn)

  謂語(yǔ)被嵌在方括號(hào)中

路徑表達(dá)式 結(jié)果
/bookstore/book[1] 選取屬于bookstore子元素的第一個(gè)book元素
/bookstore/book[last()] 選取屬于bookstore子元素的最后book元素
/bookstore/book[last()-1] 選取屬于bookstore子元素的倒數(shù)第二個(gè)book元素
/bookstore/book[position()<3] 選取最前面的兩個(gè)屬于bookstore元素的子元素的book元素
//title[@lang='eng'] 選取所有的title元素,并且這些元素?fù)碛兄禐閑ng的lang屬性
/bookstore/book[price>35.0] 選取bookstore元素的所有book元素,且其中的price值大于35.0

選取未知節(jié)點(diǎn)(通配符)

*  匹配任何 元素節(jié)點(diǎn)

@*  匹配任何屬性節(jié)點(diǎn)

node()  匹配任何類型的節(jié)點(diǎn)

4.lxml用法

#!/usr/bin/python#_*_coding:utf-8_*_from lxml import etreetext='''<div> <ul>  <li class="item-0"><a href="link1.html" rel="external nofollow" rel="external nofollow" >first item</a></li>  <li class="item-1"><a href="link2.html" rel="external nofollow" >second item</a></li>  <li class="item-inactive"><a href="link3.html" rel="external nofollow" >third item</a></li>  <li class="item-1"><a href="link4.html" rel="external nofollow" >fourth item</a></li>  <li class="item-0"><a href="link5.html" rel="external nofollow" >fifth item</a> </ul></div>  '''# html=etree.HTML(text) #html對(duì)象,存儲(chǔ)在地址中,有自動(dòng)修正功能# result=etree.tostring(html) #將html對(duì)象轉(zhuǎn)化為字符串html=etree.parse('hello.html')# result=etree.tostring(html,pretty_print=True)# print resultprint type(html)result= html.xpath('//li')print resultprint len(result)print type(result)print type(result[0])print html.xpath('//li/@class') # 獲取li標(biāo)簽下的所有的classprint html.xpath('//li/a[@href="link1.html" rel="external nofollow" rel="external nofollow" ]') #獲取li標(biāo)簽下href為link1的<a>標(biāo)簽print html.xpath('//li//span') #獲取li標(biāo)簽下所有的span標(biāo)簽print html.xpath('//li[last()-1]/a')[0].text #獲取倒數(shù)第二個(gè)元素的內(nèi)容            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 青岛市| 赫章县| 灵川县| 若羌县| 丘北县| 马关县| 萨迦县| 得荣县| 赤峰市| 江口县| 和田县| 横峰县| 台安县| 平塘县| 洪湖市| 咸宁市| 湖州市| 紫金县| 贵州省| 宣武区| 洱源县| 泗洪县| 天祝| 塔河县| 洛浦县| 张家口市| 墨竹工卡县| 剑川县| 瑞丽市| 防城港市| 西畴县| 错那县| 鹤壁市| 慈溪市| 博客| 吉首市| 桃园县| 富顺县| 武安市| 德兴市| 县级市|