简单了解xpath

什么是xpath?

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是XPath很快的被开发者采用来当作小型查询语言。

xpath的语法

选取节点 XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。 [1]
下面列出了最有用的路径表达式:
简单了解xpath_第1张图片
简单了解xpath_第2张图片

xpath用途

1.解析页面模块比较:正则表达式是进行内容匹配,将符合要求的内容全部获取;xpath()能将字符串转化为标签,它会检测字符串内容是否为标签,但是不能检测出内容是否为真的标签;Beautifulsoup是Python的一个第三方库,它的作用和 xpath 作用一样,都是用来解析html数据的相比之下;xpath的速度会快一点,因为xpath底层是用c来实现的

2.三者语法不同,正则表达式使用元字符,将所有获得内容与匹配条件进行匹配,而xpath和bs4将获取的解析后的源码进行按条件筛选,筛选出想要的标签即根据标签属性来找到指定的标签,之后对标签进行对应内容获取;

例:xpath解析页面

import lxml.etree as etree



# 1). 将html内容转化成xpath可以解析/匹配的格式;
html = """



    xpath测试
    


  • NO.1
  • NO.2
  • NO.3
  • one
  • two
""" # print(type(html)) selector = etree.HTML(html) # 2). # //: 对全文进行扫描 # //div # //div[@id="content"] str = selector.xpath('//div[@id="content"]/ul[@id="ul"]/li/text()') print(str) print(type(str)) # 需求: 获取文件中div的属性id为”url“里面的所有a标签的href属性 str = selector.xpath('//div[@id="url"]/a/@href') print(str) # 获取符合条件的标签内容; str = selector.xpath('//div"]').extract() print(str)

你可能感兴趣的:(简单了解xpath)