【Python】三大数据解析方式的总结

106 阅读2分钟

三大数据解析方式:

  • Beautifulsoup
  • 正则表达式
  • xpath

其中xpath最为常用,也最为方便。

数据解析的基本原理:

bs4:

  1. 标签定位
  2. 提取标签,标签属性中存储的数据值

原理:

  1. 实例化一个BeautifulSoup对象,并将页面源码数据加载在该对象中
  2. 通过调用BeautifulSoup对象中相关属性或者方法进行标签定位和数据提取

环境安装:

pip install bs4

如何实例化 BS 对象:

  1. 将本地的html文档中的数据加载到该对象中
  2. 将互联网获取的页面源码加载到该对象中

用于数据解析的方法与属性:

find():返回搜索到的第一条数据元素;
find_all():以列表形式返回所有的搜索到的标签数据;
select():选择性获取对应的数据,通过css选择器的方式来提取数据。返回的是一个列表。

获取标签之间的文本数据:

soup.a.text / string / get_text():

text/get_text():可以获取一个标签中所有的文本内容
string:只可以获得该标签下直系的文本内容

正则表达式:

字符:

image.png

量词:

修饰前面的一个表达式,如果要修饰多个表达式,就用( )把表达式包起来。

image.png

xpath:

最常用也是最便捷高效的一种解析方式,具有通用性。

xpath解析原理:
  1. 实例化一个etree的对象,且将需要被解析的页面源码数据加载到该对象中
  2. 调用etree对象中的xpath方法,结合着xpath表达式实现标签的定位以及内容的捕获.
环境的安装:
pip install lxml
如何实例化一个etree对象:
  1. 将本地的html文档中的源码数据加载到该对象中 etree.parse(filePath)
  2. 以将从互联网上获取的源码数据加载到该对象中etree.HTML('page_text')
xpath表达式:

image.png

二、小结:

image.png

综上所述,XPath、BeautifulSoup4和正则表达式各有优缺点和适用场景,可以根据具体需求选择不同的方式。

XPath适用于XML和HTML文档结构比较复杂、需要进行多种条件筛选和操作的情况;

BeautifulSoup4适用于处理HTML文档、对文档结构要求不高的情况;

正则表达式适用于需要进行高级模式匹配和替换的情况。