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