python使用xpath獲取內容


python使用xpath獲取內容

<div class="leftbox">
  <div class="panel">
    <div class="mtitle path"><h1>12</h1></div>
    <div class="mcon1"><h2>34</h2></div>
    <div class="mcon2">測試<a href="">鏈接</a></div>
  </div>
</div>
<div class="rightbox">
  <div class = "mtitle3 path">123</div>
  <div algin="mcon3">345</div>
  <div>ereer</div>
</div>


from lxml import etree
from lxml.html import tostring

# 1.獲取h1標簽的內容
data = selector.xpath('//div[@class="leftbox"]/div[@class="panel"]/div[contains(@class, "mtitle")]/h1/text()')[0]

# 2.獲取h2標簽的內容
data = selector.xpath('//div[@class="leftbox"]/div[@class="panel"]/div[@class="mcon1"]/h2/text()')[0]

# 3.獲取mcon2標簽的全部文字內容
data = selector.xpath('//div[@class="leftbox"]/div[@class="panel"]/div[@class="mcon2"]').xpath('string(.)')

# 4.獲取class包含mtitle3 或者 algin=mcon3
data = selector.xpath('//div[@class="rightbox"]/div[contains(@class,"mtitle3") or @algin="mcon3"]')

# 5.獲取當前標簽全部字符串內容,包括標簽本身
datas = selector.xpath('//div[@class="rightbox"]/div[contains(@class,"mtitle3") or @algin="mcon3"]')
for data in datas:
  # 編碼格式為源碼編碼格式
  str = tostring(data, encoding="utf-8").decode("utf-8")
  print(str)

# 6.獲取當前標簽內的全部文字(不含html標簽)
datas = selector.xpath('//div[@class="rightbox"]')
data = datas[0]
data = data.xpath(‘.//text()’)
data = ''.join([i.strip() for i in data])

 


免責聲明!

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



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