首页 > 其他 > 详细

XPath使用

时间:2019-05-18 22:02:27      阅读:138      评论:0      收藏:0      [点我收藏+]

XPath

一,简介

  全称XMl Path Language,是一种在XML中寻找信息的语言,同样适用于HTML文档搜索。XPath功能十分强大,提供了非常简洁明了的路径选择表达式。拥有超过100个内建函数,用于字符串,数字,时间以及节点的匹配,序列的处理等。几乎所有想要定位的节点都可以用XPath来选择。

 

二,使用

1.常用规则

  nodename :选取此节点的所有子节点

  /      :从当前节点选取直接子节点

  //     :从当前节点选取子孙节点

  .      :选取当前节点

  ..     :选取当前节点的父节点

  @      :选取属性

  

  示例://title[@lang=‘eng‘],代表锁选择的名称为title,同时属性;lang的值为eng的节点。

2,安装lxml

  windows:pip3 install lxml

3,使用示例

from lxml import etree

text = """
<div>
    <ul>
        <li class="item-0"><a href="link1.html">first item</a></li>
        <li class="item-1"><a href="link2.html">second item</a></li>
        <li class="item-active"><a href="link3.html">third item</a></li>
        <li class="item-4"><a href="link4.html">fourth item</a></li>
        <li class="item-5"><a href="link5.html">fifth item</a>
    </ul>
</div>
"""
html = etree.HTML(text)
res = etree.tostring(html)
print(res.decode(utf-8))

  首先到如etree模块,声明一段HTML文本,调用HTML类进行初始化,这样就成功构造了一个Xpath解析对象,text中最后一个li节点时没有闭合的,但是etree可以自动修正HTML文本。调用tostring输出修正后的文本,在decode转成str。

<html><body><div>
    <ul>
        <li class="item-0"><a href="link1.html">first item</a></li>
        <li class="item-1"><a href="link2.html">second item</a></li>
        <li class="item-active"><a href="link3.html">third item</a></li>
        <li class="item-4"><a href="link4.html">fourth item</a></li>
        <li class="item-5"><a href="link5.html">fifth item</a>
    </li></ul>
</div>
</body></html>

  经过处理,li节点被不全,并自动添加了,body,html节点。另外,可以直接读取文本文件进行解析:

html = etree.parse(./text.html, etree.HTMLParser())
print(etree.tostring(html).decode(utf-8))

 

XPath使用

原文:https://www.cnblogs.com/zivli/p/10887268.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!