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语法笔记相关推荐

  1. Python爬虫xpath语法及案例使用

    Python爬虫之xpath语法及案例使用 ---- 钢铁侠的知识库 2022.08.15 我们在写Python爬虫时,经常需要对网页提取信息,如果用传统正则表达去写会增加很多工作量,此时需要一种对数 ...

  2. Python 爬虫 xpath 数据解析基本用法

    Python 爬虫 xpath 数据解析基本用法 1. 基本语法 1.1 解析 html 语法 1.2 获取标签 1.3 获取标签中的内容 1.4 获取标签中的属性 1.5 通过内容寻找结点 2. 实 ...

  3. 无敌python爬虫教程学习笔记(一)

    python爬虫系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 本文目录 ...

  4. 无敌python爬虫教程学习笔记(二)

    系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 手刃一个小爬虫 系列文章目 ...

  5. Python爬虫——XPath的使用

    Python爬虫--XPath的使用 使用实例一:获取需要的文字 1.导入需要使用的模块 import urllib.request from lxml import etree 2.发送请求访问网站 ...

  6. Python - 爬虫 - Xpath定位之starts-with()和string()函数的简单使用

    Python - 爬虫 - Xpath定位之starts-with()和string()函数的简单使用 文章目录 Python - 爬虫 - Xpath定位之starts-with()和string( ...

  7. python爬虫xpath的语法

    有朋友问我正则,,okey,其实我的正则也不好,但是python下xpath是相对较简单的 简单了解一下xpath: XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML ...

  8. Python 中 xpath 语法 与 lxml 库解析 HTML/XML 和 CSS Selector

    The lxml.etree Tutorial :https://lxml.de/tutorial.html python3 解析 xml:https://www.cnblogs.com/deadwo ...

  9. python爬虫(上课笔记)

    爬虫概述 爬虫:网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.其本质就是通过编写程序拟浏览器上网,抓取数据的过程. 爬虫特点 在法律中都是不被禁止的: 具有违法风险: 爬虫是一个博 ...

最新文章

  1. 2021-08-09 图像灰度二值化
  2. Java 线程 — ThreadPoolExecutor
  3. Java黑皮书课后题第4章:4.19(商业:检测ISBN-10)改写编程练习题3.9,将ISBN号作为一个字符串输入
  4. Java中数组的赋值方式
  5. 计算机视觉模型、学习和推理
  6. 菜鸟的MySQL学习笔记(一)
  7. python requests 上传文件_Python 实现小程序云存储文件上传
  8. 企业应用:应用层查询接口设计
  9. 不学点《近世代数》怎么学好现代密码学
  10. matlab 非线性动力系统 极限环,非线性动力系统混沌运动的Matlab数值模拟.doc
  11. Python 背英语单词源代码
  12. kali linux嗅探图片_kali linux 密码嗅探工具 Dsniff 详解
  13. 计算机上英语CE,计算器英语
  14. Appium自动化测试(五)——PO模式(一):短信案例
  15. 算算我们80后的小孩今后读大学要花多少钱
  16. 连接 MySql 数据库
  17. Python百度地图API,通过区县、村镇地址获取完整省市区行政区划
  18. 电商云仓储到底是什么?
  19. DeFi:解决 EIP-4626 中的滑点问题
  20. 重新定义一个全新的区块链运行架构:他们的技术有何不同?

热门文章

  1. talib 中文文档(八): Momentum Indicator Functions 动量指标
  2. ReactNative环境配置的坑
  3. elasticsearch的映射(mapping)和分析(analysis)
  4. C# 读取ini文件 百度问问学习文档
  5. Emotion英语学习
  6. NET4.0.X中的状态机工作流
  7. javascript中三个等号的意思
  8. linux 启动脚本 tty,Linux启动过程简介
  9. bugzilla dbd-mysql_在Red Hat Linux下安装配置Bugzilla
  10. wince 微软服务器,大众拥抱微软 推出WinCE 4.0 Pocket PC