真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python中Xpath如何使用

這篇文章主要介紹了Python中Xpath 如何使用,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的龍安網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

xpath速度比較快,是爬蟲在網(wǎng)頁定位中的較優(yōu)選擇,但是很多網(wǎng)頁前端代碼混亂難以定位,而學(xué)習(xí)定位也較為不易,這里列出一點(diǎn)編程過程中可能有用的東西。

試驗(yàn)環(huán)境:Python環(huán)境,lxml.etree

試驗(yàn)所使用的html代碼




    xpath test



    
        
                
  • 時間
  •             
  • 地點(diǎn)
  •             
  • 任務(wù)
  •         
    
             

這里是個小標(biāo)題

        
                1             2             3         
        
                84             104             223         
    
    
        

這里是H3的內(nèi)容             百度一下             
                    
  • test1
  •                 
  • test2
  •             
        

    
             
                
  • 1
  •             
  • 2
  •             
  • 3
  •             
  • 4
  •             
  • 5
  •             
  • 6
  •             
  • 7
  •             
  • 8
  •             
  • 9
  •             
  • 10
  •         
    

1、匹配某節(jié)點(diǎn)下的所有.//

//獲取文檔中所有匹配的節(jié)點(diǎn),.獲取當(dāng)前節(jié)點(diǎn),有的時候我們需要獲取當(dāng)前節(jié)點(diǎn)下的所有節(jié)點(diǎn),.//一定要結(jié)合.使用//,否則都會獲取整個文檔的匹配結(jié)果.

2、匹配包含某屬性的所有的屬性值//@lang

print tree.xpath('//@code') #匹配所有帶有code屬性的屬性值
>>['84', '104', '223']

3、選取若干路徑|

這個符號用于在一個xpath中寫多個表達(dá)式用,用|分開,每個表達(dá)式互不干擾

print tree.xpath('//div[@id="testid"]/h3/text() | //li[@data]/text()') #多個匹配條件
>>[u'\u8fd9\u91cc\u662f\u4e2a\u5c0f\u6807\u9898', '1', '2', '3']

4、 Axes(軸)

child:選取當(dāng)前節(jié)點(diǎn)的所有子元素

>>print tree.xpath('//div[@id="testid"]/child::ul/li/text()') #child子節(jié)點(diǎn)定位
>>['84', '104', '223']

>>print tree.xpath('//div[@id="testid"]/child::*') #child::*當(dāng)前節(jié)點(diǎn)的所有子元素
>>[]

>>#定位某節(jié)點(diǎn)下為ol的子節(jié)點(diǎn)下的所有節(jié)點(diǎn)
>>print tree.xpath('//div[@id="testid"]/child::ol/child::*/text()') 
>>['1', '2', '3']

attribute:選取當(dāng)前節(jié)點(diǎn)的所有屬性

>>print tree.xpath('//div/attribute::id') #attribute定位id屬性值
>>['testid', 'go']

>>print tree.xpath('//div[@id="testid"]/attribute::*') #定位當(dāng)前節(jié)點(diǎn)的所有屬性
>>['testid', 'first']

ancestor:父輩元素 / ancestor-or-self:父輩元素及當(dāng)前元素

>>print tree.xpath('//div[@id="testid"]/ancestor::div/@price') #定位父輩div元素的price屬性
>>['99.8']

>>print tree.xpath('//div[@id="testid"]/ancestor::div') #所有父輩div元素
>>print tree.xpath('//div[@id="testid"]/ancestor-or-self::div') #所有父輩及當(dāng)前節(jié)點(diǎn)div元素
>>[]
>>[]

following :選取文檔中當(dāng)前節(jié)點(diǎn)的結(jié)束標(biāo)簽之后的所有節(jié)點(diǎn)

#定位testid之后不包含id屬性的div標(biāo)簽下所有的li中第一個li的text屬性
>>print tree.xpath('//div[@id="testid"]/following::div[not(@id)]/.//li[1]/text()') 
>>['test1']

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Python中Xpath 如何使用內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!


文章標(biāo)題:Python中Xpath如何使用
URL網(wǎng)址:http://weahome.cn/article/pchpdh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部