首頁  >  文章  >  後端開發  >  全面了解Python爬蟲之xlml解析庫

全面了解Python爬蟲之xlml解析庫

黄舟
黄舟原創
2017-08-08 11:33:081643瀏覽

下面小編就為大家帶來一篇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[last()]/bookstore/book[last()-1]/bookstore/book [position()98f2945303cf7ae8f525d8c68641f1cd35.0]
結果
選取屬於bookstore子元素的第一個book元素
選取屬於bookstore子元素的最後book元素
選取屬於bookstore子元素的倒數第二個book元素
#選取bookstore元素的所有book元素,且其中的price值大於35.0
選取未知節點(通配符)

#*符合任何元素節點

@*  符合任何屬性節點

node()  符合任何類型的節點

4.lxml用法

#

#!/usr/bin/python
#_*_coding:utf-8_*_

from lxml import etree

text='''
<p>
 <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>
</p>
  &#39;&#39;&#39;

# html=etree.HTML(text) #html对象,存储在地址中,有自动修正功能
# result=etree.tostring(html) #将html对象转化为字符串

html=etree.parse(&#39;hello.html&#39;)
# result=etree.tostring(html,pretty_print=True)
# print result
print type(html)
result= html.xpath(&#39;//li&#39;)
print result
print len(result)
print type(result)
print type(result[0])
print html.xpath(&#39;//li/@class&#39;) # 获取li标签下的所有的class
print html.xpath(&#39;//li/a[@href="link1.html" rel="external nofollow" rel="external nofollow" ]&#39;) #获取li标签下href为link1的<a>标签
print html.xpath(&#39;//li//span&#39;) #获取li标签下所有的span标签
print html.xpath(&#39;//li[last()-1]/a&#39;)[0].text #获取倒数第二个元素的内容

以上是全面了解Python爬蟲之xlml解析庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn