当前位置: 代码迷 >> 综合 >> xpath 解析html代码
  详细解决方案

xpath 解析html代码

热度:46   发布时间:2023-12-05 11:43:42.0
#e  element 元素、节点、标签
#tree 树   etree 标签树
from lxml import etreehtml_str="""
<a href='https://www.baidu.com'>百度一下,你就知道</a>
"""
#将字符串转化为标签,该方法会检测字符串内容是否为标签样式
#但是不可以检测内容是否为真的标签
result=etree.fromstring(html_str)
#parse解析
html=etree.parse('H5文件.html')
   <p id="one"><span>hello word</span></p><p class="first second" id="two">second</p><div class="now"><p id="jd" class="third"> third909 </p><a  id="jdd" href="https://www.meishij.net"></a><a class="shopping" href="">我是JD</a></div>
</body>
</html>
print(type(html))
print(html)
a=html.xpath('//a')#找到网页内的所有a标签
print(a)
#获取指定标签的类名
result=html.xpath('//a/@class')
print(result)
result=html.xpath('//a/@id')
result=html.xpath('//a/@href')
print(result)
#找到指定的文本内容
result=html.xpath('//a/text()')
print(result)
#如果找一个标签的文本,而这个标签下面还有其他的标签
#那么只找这个标签文本,子标签的文本不找
result=html.xpath('//div/text()')
print(result)
#//text()找到本标签以及所有子标签的文本
result=html.xpath('//div//text()')
print(result)
# 获取指定的标签的文本
result=html.xpath('//div/p[@id="jd"]/text()')
print(result)

#last()获取最后一个标签
result=html.xpath('//ul/li[last()]')[0]
#获取指定类名的标签的文本
result=html.xpath('//a[@class="shopping"]/text()')
print(result)
#contains包含指定属性
result=html.xpath('//div[@class="now"]/p[contains(@class,"third")]/text()')
print(result)
#找到所有的ul 找到ul下所有的a标签。获取a标签文本和所有的a标签的子标签的文本
result=html.xpath('//ul//a//text()')
print(result)
  相关解决方案