Python操作lxml库实战之Xpath篇
作者:醉蕤 发布时间:2023-12-26 23:08:00
标签:python,lxml,xpath
一、Xpath概述
1、Xpath简介
Xpath(XML Path Language) 是一门在 XML 文档中查找信息的语言,可以用来在XML文档中对元素和属性进行遍历。XPath 用于在 XML 文档中通过元素和属性进行导航。其是一种路径语言(XML Path Language),用来确定XML文档中某部分的位置。
XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是XPath很快的被开发者采用来当作小型*查询语言被广泛使用。
2、 Xpath的安装
Xpath只是 lxml
库中的一个模块,想要使用 Xpath
那么就需要安装 lxml
库
pip install lxml
二、Xpath的常用规则
1、路径查找
Xpath 的主要语法
2、节点查找
查找节点的一些语法
3、未知节点
当我们匹配时会出现路径不确定的情况,这个时候我们就要涉及到匹配未知节点。匹配未知节点也有对应的语法。
4、获取节点中的文本
通过 属性方法可以获取属性内的内容,但是位于节点之间的内容无法获取到,这个时候就可以通过 text()
与 string()
方法来获得其中的文本。
通过 text()
获取某个节点中的文本
In [1]: page.xpath('//li/a[3]/text()')
Out[1]: ['霸道总裁爱上我', '斗罗大陆']
#通过 text() 属性可以很轻松的获取标签之间的文本。
通过 string()
获取某个节点中的文本
In [1]: page.xpath('string(//li[1]/a[3])')
Out[1]: '霸道总裁爱上我'
5、选取多个路径
需要同时查找多个条件时可以通过在路径表达式中使用管道符("|"),选取若干个路径
In [1]: page.xpath('XXXXXXX | XXXXXXXtext()')
Out[1]: ['']
来源:https://blog.csdn.net/m0_63794226/article/details/126377840


猜你喜欢
- 1. 线性表简介线性表是一种线性结构,它是由零个或多个数据元素构成的有限序列。线性表的特征是在一个序列中,除了头尾元素,每个元素都有且只有一
- 作用域:顾名思义,作用的范围。如果你是自学者,而且已经进军到函数这一部分了,那么就应当了解下Python的作用域。否则你可能会像我一样,总是
- 目录项目地址运行环境运行方法数据爬取(jd.comment.py)模型训练(train.py)情感分析(sentiment.analysis
- 如下所示:import urllib,json,requestsurl = 'http://127.0.0.1:8000/accou
- 复合索引(又称为联合索引),是在多个列上创建的索引。创建复合索引最重要的是列顺序的选择,这关系到索引能否使用上,或者影响多少个谓词条件能使用
- 实例如下:<!DOCTYPE html><html><head><script src="
- Base64编码和解码Base64 不是加密算法,只是一种编码方式,数据从一种形式转换为另一种形式进行传输/存储。Base64 就是一种基于
- 前言这篇文章算是对Building APIs with Node.js这本书的一个总结。用Node.js写接口对我来说是很有用的,比如在项目
- 前言:线性回归模型属于经典的统计学模型,该模型的应用场景是根据已知的变量(即自变量)来预测某个连续的数值变量(即因变量)。例如餐厅根据媒体的
- 安装 JSX 插件在 Vue2 中要想使用 jsx 开发,需要安装 @vue/babel-preset-jsx 等插件,之后在 babel
- 我们平常在网页上显示的字体最小一般是12PX,当小于10PX时,显示的效果就大打折扣了,因为中文默认的字体是宋体,当小于12PX时的效果如下
- 1、说明拼接文件路径,可以有多个参数。2、语法os.path.join(path1,path2,*)path1 初始路径。path2 需要拼
- '-----------------------------------------------------------
- 本文实例讲述了wxPython的事件驱动机制,分享给大家供大家参考。具体方法如下:先来看看如下代码:#!/usr/bin/python #
- 从PHP的5.4.0版本开始,PHP提供了一种全新的代码复用的概念,那就是Trait。Trait其字面意思是”特性”、”特点”,我们可以理解
- 如何用ADO批量更新记录?是的,ADO有这项功能,不过好像用的人不太多(不了解还是不会用呢?):<HTML> &nbs
- 本文来给大家介绍一个php版淘宝网查询商品接口代码的例子,下面要改成你的信息的在代码后面都有说明了,同时sdk包我们也要官方下载。下载SDK
- 新版Django在admin后台直接删除一条数据时,file = models.FileField(upload_to=‘file'
- 记录使用pytorch构建网络模型过程遇到的点1. 网络模型构建中的问题1.1 输入变量是Tensor张量各个模块和网络模型的输入,一定要是
- 检测自己当前系统环境中python是否已经安装该module,若未安装请自行安装检测自己的pycharm使用的环境变量是否与当前环境一致若不