Python爬虫:Xpath语法笔记
Python爬虫:Xpath语法笔记
一、选取节点
常用的路劲表达式:
表达式 | 描述 | 实例 | |
nodename | 选取nodename节点的所有子节点 | xpath(‘//div’) | 选取了div节点的所有子节点 |
/ | 从根节点选取 | xpath(‘/div’) | 从根节点上选取div节点 |
// | 选取所有的当前节点,不考虑他们的位置 | xpath(‘//div’) | 选取所有的div节点 |
. | 选取当前节点 | xpath(‘./div’) | 选取当前节点下的div节点 |
.. | 选取当前节点的父节点 | xpath(‘..’) | 回到上一个节点 |
@ | 选取属性 | xpath(’//@calss’) | 选取所有的class属性 |
二、谓语
谓语被嵌在方括号内,用来查找某个特定的节点或包含某个制定的值的节点
实例:
表达式 | 结果 |
xpath(‘/body/div[1]’) | 选取body下的第一个div节点 |
xpath(‘/body/div[last()]’) | 选取body下最后一个div节点 |
xpath(‘/body/div[last()-1]’) | 选取body下倒数第二个div节点 |
xpath(‘/body/div[positon()<3]’) | 选取body下前两个div节点 |
xpath(‘/body/div[@class]’) | 选取body下带有class属性的div节点 |
xpath(‘/body/div[@class=”main”]’) | 选取body下class属性为main的div节点 |
xpath(‘/body/div[price>35.00]’) | 选取body下price元素值大于35的div节点 |
三、通配符
Xpath通过通配符来选取未知的XML元素
表达式 | 结果 |
xpath(’/div/*’) | 选取div下的所有子节点 |
xpath(‘/div[@*]’) | 选取所有带属性的div节点 |
四、取多个路径
使用“|”运算符可以选取多个路径
表达式 | 结果 |
xpath(‘//div|//table’) | 选取所有的div和table节点 |
五、Xpath轴
轴可以定义相对于当前节点的节点集
轴名称 | 表达式 | 描述 |
ancestor | xpath(‘./ancestor::*’) | 选取当前节点的所有先辈节点(父、祖父) |
ancestor-or-self | xpath(‘./ancestor-or-self::*’) | 选取当前节点的所有先辈节点以及节点本身 |
attribute | xpath(‘./attribute::*’) | 选取当前节点的所有属性 |
child | xpath(‘./child::*’) | 返回当前节点的所有子节点 |
descendant | xpath(‘./descendant::*’) | 返回当前节点的所有后代节点(子节点、孙节点) |
following | xpath(‘./following::*’) | 选取文档中当前节点结束标签后的所有节点 |
following-sibing | xpath(‘./following-sibing::*’) | 选取当前节点之后的兄弟节点 |
parent | xpath(‘./parent::*’) | 选取当前节点的父节点 |
preceding | xpath(‘./preceding::*’) | 选取文档中当前节点开始标签前的所有节点 |
preceding-sibling | xpath(‘./preceding-sibling::*’) | 选取当前节点之前的兄弟节点 |
self | xpath(‘./self::*’) | 选取当前节点 |
六、功能函数
使用功能函数能够更好的进行模糊搜索
函数 | 用法 | 解释 |
starts-with | xpath(‘//div[starts-with(@id,”ma”)]‘) | 选取id值以ma开头的div节点 |
contains | xpath(‘//div[contains(@id,”ma”)]‘) | 选取id值包含ma的div节点 |
and | xpath(‘//div[contains(@id,”ma”) and contains(@id,”in”)]‘) | 选取id值包含ma和in的div节点 |
text() | xpath(‘//div[contains(text(),”ma”)]‘) | 选取节点文本包含ma的div节点 |
scrapy xpath文档:http://doc.scrapy.org/en/0.14/topics/selectors.html
转载于:https://www.cnblogs.com/PeterZhang1520389703/p/8193465.html
Python爬虫:Xpath语法笔记相关推荐
- Python爬虫xpath语法及案例使用
Python爬虫之xpath语法及案例使用 ---- 钢铁侠的知识库 2022.08.15 我们在写Python爬虫时,经常需要对网页提取信息,如果用传统正则表达去写会增加很多工作量,此时需要一种对数 ...
- Python 爬虫 xpath 数据解析基本用法
Python 爬虫 xpath 数据解析基本用法 1. 基本语法 1.1 解析 html 语法 1.2 获取标签 1.3 获取标签中的内容 1.4 获取标签中的属性 1.5 通过内容寻找结点 2. 实 ...
- 无敌python爬虫教程学习笔记(一)
python爬虫系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 本文目录 ...
- 无敌python爬虫教程学习笔记(二)
系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 手刃一个小爬虫 系列文章目 ...
- Python爬虫——XPath的使用
Python爬虫--XPath的使用 使用实例一:获取需要的文字 1.导入需要使用的模块 import urllib.request from lxml import etree 2.发送请求访问网站 ...
- Python - 爬虫 - Xpath定位之starts-with()和string()函数的简单使用
Python - 爬虫 - Xpath定位之starts-with()和string()函数的简单使用 文章目录 Python - 爬虫 - Xpath定位之starts-with()和string( ...
- python爬虫xpath的语法
有朋友问我正则,,okey,其实我的正则也不好,但是python下xpath是相对较简单的 简单了解一下xpath: XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML ...
- Python 中 xpath 语法 与 lxml 库解析 HTML/XML 和 CSS Selector
The lxml.etree Tutorial :https://lxml.de/tutorial.html python3 解析 xml:https://www.cnblogs.com/deadwo ...
- python爬虫(上课笔记)
爬虫概述 爬虫:网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.其本质就是通过编写程序拟浏览器上网,抓取数据的过程. 爬虫特点 在法律中都是不被禁止的: 具有违法风险: 爬虫是一个博 ...
最新文章
- 2021-08-09 图像灰度二值化
- Java 线程 — ThreadPoolExecutor
- Java黑皮书课后题第4章:4.19(商业:检测ISBN-10)改写编程练习题3.9,将ISBN号作为一个字符串输入
- Java中数组的赋值方式
- 计算机视觉模型、学习和推理
- 菜鸟的MySQL学习笔记(一)
- python requests 上传文件_Python 实现小程序云存储文件上传
- 企业应用:应用层查询接口设计
- 不学点《近世代数》怎么学好现代密码学
- matlab 非线性动力系统 极限环,非线性动力系统混沌运动的Matlab数值模拟.doc
- Python 背英语单词源代码
- kali linux嗅探图片_kali linux 密码嗅探工具 Dsniff 详解
- 计算机上英语CE,计算器英语
- Appium自动化测试(五)——PO模式(一):短信案例
- 算算我们80后的小孩今后读大学要花多少钱
- 连接 MySql 数据库
- Python百度地图API,通过区县、村镇地址获取完整省市区行政区划
- 电商云仓储到底是什么?
- DeFi:解决 EIP-4626 中的滑点问题
- 重新定义一个全新的区块链运行架构:他们的技术有何不同?
热门文章
- talib 中文文档(八): Momentum Indicator Functions 动量指标
- ReactNative环境配置的坑
- elasticsearch的映射(mapping)和分析(analysis)
- C# 读取ini文件 百度问问学习文档
- Emotion英语学习
- NET4.0.X中的状态机工作流
- javascript中三个等号的意思
- linux 启动脚本 tty,Linux启动过程简介
- bugzilla dbd-mysql_在Red Hat Linux下安装配置Bugzilla
- wince 微软服务器,大众拥抱微软 推出WinCE 4.0 Pocket PC