一. 课程安排

  • 课程内容

      1. xpath介绍
      • 基本概念
      • 结点的关系

      1. 基本使用
      • 工具安装
      • 模块的使用

二. 课堂笔记

1. xpath介绍

1.1 基本概念

  • XPath(XML Path Language)是一种XML的查询语言,他能在XML树状结构中寻找节点。XPath 用于在 XML 文档中通过元素和属性进行导航
  • xml是一种标记语法的文本格式,xpath可以方便的定位xml中的元素和其中的属性值。lxml是python中的一个包,这个包中包含了将html文本转成xml对象,和对对象执行xpath的功能

1.2 结点的关系

  1. xml_content = '''
  2. <bookstore>
  3. <book>
  4. <title lang='eng'>Harry Potter</title>
  5. <author>K.Rowing</author>
  6. <year>2005</year>
  7. <price>29<price>
  8. </book>
  9. </bookstore>
  10. '''

image.png

  • 父(Parent) book元素是title、author、year、price元素的父
  • 子(Children) title、author、year、price都是book元素的子
  • 同胞(Sibling) title、author、year、price都是同胞
  • 先辈(Ancestor) title元素的先辈是 book元素和bookstore元素

2. 基本使用

2.1 工具安装

image.png
安装参考网站
https://blog.csdn.net/qq_31082427/article/details/84987723

image.png

查找某个特定的节点或者包含某个指定的值的节点
image.png

image.png

2.2 模块的使用

在Python中,我们安装lxml库来使用XPath 技术
lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取HTML/XML数据利用etree.HTML,将字符串转化为Element对象
lxml python 官方文档:http://lxml.de/index.html
可使用 pip 安装:pip install lxml
lxml 可以⾃动修正 html 代码

  1. wb_data = """
  2. <div>
  3. <ul>
  4. <li class="item-0"><a href="link1.html">first item</a></li>
  5. <li class="item-1"><a href="link2.html">second item</a></li>
  6. <li class="item-inactive"><a href="link3.html">third item</a></li>
  7. <li class="item-1"><a href="link4.html">fourth item</a></li>
  8. <li class="item-0"><a href="link5.html">fifth item</a>
  9. </ul>
  10. </div>
  11. """

使用
from lxml import etree
这个etree类能干什么?

  • 第一个是将html字符串转化为element对象
  • 第二个是element对象可以转换为字符串或者二进制类型