Python Xpath解析 数据提取 使用介绍&常用示例

简介: Python Xpath解析 数据提取 使用介绍&常用示例前言一、from lxml import etree1.pip install lxml2.xpath用法介绍2.1 选取节点2.1 路径表达式结合元素介绍3.代码示例4.Xpath Helper (免费 Chrome 插件)总结

Python Xpath解析 数据提取 使用介绍&常用示例

一、from lxml import etree

1.pip install lxml

2.xpath用法介绍

2.1 选取节点

2.1 路径表达式结合元素介绍

3.代码示例

4.Xpath Helper (免费 Chrome 插件)

总结

前言

XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历,XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上。


提示:以下是本篇文章正文内容,下面案例可供参考

一、from lxml import etree

1.pip install lxml

pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple

2.xpath用法介绍

2.1 选取节点

XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。
下面列出了常用的路径表达式:

表达式 描述
nodename 选取此节点的所有子节点。
/ 从根节点选取。
// 不考虑起始位置,在整个文档中全局匹配符合表达式的节点。
. 选取当前节点。
.. 选取当前节点的父节点。
@ 选取属性。

2.1 路径表达式结合元素介绍

路径表达式以及表达式的含义

表达式 描述
bookstore 选取 bookstore 元素的所有子节点。
bookstore/book 选取 bookstore下面(子元素中)的所有 book 元素
//book 选取所有的book元素,在整个文档中全局匹配符合表达式的节点。
bookstore//book 选取bookstore下面(子元素中)所有的book元素
//@lang 选取名为 lang 的所有属性。
/bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。
/bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。
/bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。
/bookstore/book[position()<5] 选取属于 bookstore 下面(子元素中)的前四个 book 元素。
//title[@lang] 选取所有属性名为 lang 的 title 元素。
//title[@class='content'] 选取所有属性名为 class并且值="content"的 title 元素。
/bookstore/book[price>35.00] 选取 bookstore 元素下的所有 book 元素,且其中的 price 元素的值须大于 35.00。
* 匹配任何元素节点。
@* 匹配任何属性节点。
node() 匹配任何类型的节点。
/bookstore/* 选取 bookstore 元素的所有子元素。
//* 选取文档中的所有元素。
//title[@*] 选取所有带有属性的 title 元素。
//title I //price 选取文档中的所有 title 和 price 元素。
//div[contains(@class,"a")] 选取所有class值包含a的div元素
//div[contains(@class,"a") and contains(@class,"b")] 选取所有class值包含a和b的div元素
//input[@type='submit' and @name='fuck'] 选取文档中所有属性type值="submit"且属性name值='fuck' 的input元素。
//input[@type='submit' or @name='fuck'] 选取文档中所有属性type值="submit"或属性name值='fuck' 的input元素。

3.代码示例

    import requests
    from lxml import etree
    url = 'xxxx'
    # Python Request get post 代理 常用示例:https://blog.csdn.net/EXIxiaozhou/article/details/127015235?spm=1001.2014.3001.5502
    response = requests.get(url=url)
    web_html = response.text
    selects = etree.HTML(web_html)  # 解析网页源码
    selects.xpath("//input[@type='submit']/text()")  # 获取input元素的文本
    selects.xpath("//input[@type='submit']/@title")  # 获取input元素的title属性值
    li_tag = selects.xpath("//ul[@class='xxx']/li[1]")  # 获取ul元素下的第一个li元素
    li_list = selects.xpath("//ul[@class='xxx']/li")  # 获取ul元素下的所有个li元素,返回list类型
    for li in li_list:
        # 将返回的xpath对象转为html源代码
        li_tag_html = etree.tostring(li, encoding='utf-8', pretty_print=True, method='html').decode("utf-8")
        li.xpath("text()")  # 获取当前li元素的文本

4.Xpath Helper (免费 Chrome 插件)

Xpath Helper 国内下载地址: https://chrome.zzzmh.cn/info?token=hgimnogjllphhhkhlmebbmlgjoejdpjl
Xpath Helper 安装教程: https://blog.csdn.net/qq_54528857/article/details/122202572
Xpath Helper 补充:插件中的xpath表达式和代码中的表达式,语法上是一致的 在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了xpath解析web源码的使用,而xpath提供了大量能使我们快速便捷地处理数据的函数和方法,后续有关于xpath的常用代码会在这篇博客中持续更新。
XPath官方手册中文版:https://www.cnblogs.com/armlinux/archive/2006/12/05/2391049.html

目录
相关文章
|
6月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
4022 1
|
6月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
653 0
|
6月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
6月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
6月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
838 0
|
6月前
|
数据采集 存储 JavaScript
解析Python爬虫中的Cookies和Session管理
Cookies与Session是Python爬虫中实现状态保持的核心。Cookies由服务器发送、客户端存储,用于标识用户;Session则通过唯一ID在服务端记录会话信息。二者协同实现登录模拟与数据持久化。
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href=&#39;example.com&#39;]` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
444 7
|
XML 数据格式 Python
Python使用xpath对解析内容进行数据提取
在前面的文章当中,已经教大家如何去获取我们需要的数据原文内容,今天就介绍一个用于提取所需数据的方法之一xpath。在后续会讲解bs4(beautifulsoup),re正则表达式。
|
XML 数据格式 Python
Python使用xpath对解析内容进行数据提取
今天就介绍一个用于提取所需数据的方法之一xpath。在后续会讲解bs4(beautifulsoup),re正则表达式。
|
索引 Python
【Python】数据解析—Xpath解析
【Python】数据解析—Xpath解析
249 0

推荐镜像

更多