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])