Python爬虫之xlml解析库
生活随笔
收集整理的這篇文章主要介紹了
Python爬虫之xlml解析库
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.Xpath
Xpath是一門在XML中查找信息的語言,可用來在XML文檔中對元素和屬性進行遍歷。XQuery和xpoint都是構建于xpath表達之上
2.節點
父(parent),子(children),兄弟(sibling),先輩(ancetstor),后代(Decendant)
3.選取節點
路徑表達式
| 表達式 | 描述 | 路徑表達式 | 結果 |
| nodename | 選取此節點上的所有的子節點 | bookstore | 選取bookstore元素的所有子節點 |
| / | 從根節點上選取 | /bookstore | 選取根元素bookstore,為絕對路徑 |
| // | 從匹配選擇的當前節點選擇文檔中的節點,不考慮位置 | //book | 選取所有的book子元素,而不管他們在文檔的位置 |
| . | 選取當前節點 | bookstore//book | 選擇bookstore后代中所有的book元素 |
| .. | 選取當前節點的父節點 | ? | ? |
| @ | 選取屬性 | //@lang | 選取名為lang的所有屬性 |
?
?
?
?
?
?
?
?
謂語
謂語用來查找某個特定的節點或者包含某個指定的值的節點
謂語被嵌在方括號中
| 路徑表達式 | 結果 |
| /bookstore/book[1] | 選取屬于bookstore子元素的第一個book元素 |
| /bookstore/book[last()] | 選取屬于bookstore子元素的最后book元素 |
| /bookstore/book[last()-1] | 選取屬于bookstore子元素的倒數第二個book元素 |
| /bookstore/book[position()<3] | 選取最前面的兩個屬于bookstore元素的子元素的book元素 |
| //title[@lang='eng'] | 選取所有的title元素,并且這些元素擁有值為eng的lang屬性 |
| /bookstore/book[price>35.0] | 選取bookstore元素的所有book元素,且其中的price值大于35.0 |
?
?
?
?
?
?
?
?
?
?
選取未知節點(通配符)
* 匹配任何 元素節點
@* 匹配任何屬性節點
node() 匹配任何類型的節點
?
4.lxml用法
#!/usr/bin/python #_*_coding:utf-8_*_from lxml import etreetext=''' <div><ul><li class="item-0"><a href="link1.html">first item</a></li><li class="item-1"><a href="link2.html">second item</a></li><li class="item-inactive"><a href="link3.html">third item</a></li><li class="item-1"><a href="link4.html">fourth item</a></li><li class="item-0"><a href="link5.html">fifth item</a></ul> </div>'''# html=etree.HTML(text) #html對象,存儲在地址中,有自動修正功能 # result=etree.tostring(html) #將html對象轉化為字符串 html=etree.parse('hello.html') # result=etree.tostring(html,pretty_print=True) # print result print type(html) result= html.xpath('//li') print result print len(result) print type(result) print type(result[0]) print html.xpath('//li/@class') # 獲取li標簽下的所有的class print html.xpath('//li/a[@href="link1.html"]') #獲取li標簽下href為link1的<a>標簽 print html.xpath('//li//span') #獲取li標簽下所有的span標簽 print html.xpath('//li[last()-1]/a')[0].text #獲取倒數第二個元素的內容?
轉載于:https://www.cnblogs.com/sjtu-ly-2017/p/7301215.html
總結
以上是生活随笔為你收集整理的Python爬虫之xlml解析库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java Thread的start和r
- 下一篇: 最优服务次序问题 和 汽车加油问题