python中lxml庫與Xpath語法(含實例)


Xpath表達式:

/  描述:從根節點選取

//  描述:從匹配選擇的當前節點選擇文檔中的節點,而不考慮它們的位置

.  描述:選取當前節點

..  描述:選取當前節點的父節點

@  描述:選取屬性

定位目標標簽思路:“先抓大再抓小”,先找到循環節點,再細分

給出一個簡單例子如下:

from lxml import etree
import requests

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
}
url = 'http://a.qidian.com/?page=1'
res = requests.get(url,headers=headers)
selector = etree.HTML(res.text)
#print(res.text)
'''
str=selector.xpath('/html/body/div[1]/div[5]/div[2]/div[2]/div/ul/li[1]/div[2]/p[1]/a[1]/text()')#通過/text()可以獲得標簽中的文字信息
print(str)
'''
infos = selector.xpath('//ul[@class="all-img-list cf"]/li')
print(infos)
for info in infos:
    author = info.xpath('div[2]/p[1]/a[1]/text()')[0]
    print(author)

網站:

 

 

 

錯誤點:

author = info.xpath('/div[2]/p[1]/a[1]/text()')[0]

開始的時候,一直多加了一個單斜杠,找了好久這個錯才找出來,一直以為我找的Xpath路徑出錯了。 

正確:

author = info.xpath('div[2]/p[1]/a[1]/text()')[0]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM