XPath总结
一、何为XPath
XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的
二、XPath语法
1、语法
| 表达式 |
描述 |
| nodename |
选取此节点的所有子节点 |
| / |
从根节点选取 |
| // |
从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 |
| . |
选取当前节点 |
| .. |
选取当前节点的父节点 |
| @ |
选取属性 |
| contains |
包含,模糊匹配 |
| * |
选取所有节点 |
| | |
与 |
2、实例
| 路径表达式 |
结果 |
| //book/page |
选取根目录下所有book标签中的page标签 |
| //book[@name='hong'] |
选取根目录下所有name属性是hong的book标签 |
| //*[@name='key'] |
选取根目录下所有name属性是key的任意标签 |
| //*[@name,'key_'] |
选取根目录下所有name属性包含key的任意标签 |
| //*[@id="author"]/a[3] |
选取根目录下所有id属性是author的任意标签下子标签中的第3个a标签 |
| //title[@*] |
选取所有带有属性的 title 元素 |
| //title | //price |
选取文档中的所有 title 和 price 元素。 |
三、XPath轴
定义所选节点与当前节点之间的树关系
1、XPath轴语法
轴名称::节点测试[谓语]
| 轴名称 |
结果 |
| ancestor |
选取当前节点的所有先辈(父、祖父等) |
| ancestor-or-self |
选取当前节点的所有先辈(父、祖父等)以及当前节点本身 |
| attribute |
选取当前节点的所有属性 |
| child |
选取当前节点的所有子元素 |
| descendant |
选取当前节点的所有后代元素(子、孙等) |
| descendant-or-self |
选取当前节点的所有后代元素(子、孙等)以及当前节点本身 |
| following |
选取文档中当前节点的结束标签之后的所有节点 |
| namespace |
选取当前节点的所有命名空间节点 |
| parent |
选取当前节点的父节点 |
| preceding |
选取文档中当前节点的开始标签之前的所有节点 |
| preceding-sibling |
选取当前节点之前的所有同级节点 |
| self |
选取当前节点 |
2、XPath轴实例
| 例子 |
结果 |
| child::book |
选取所有属于当前节点的子元素的 book 节点 |
| attribute::lang |
选取当前节点的 lang 属性 |
child:
- 爬虫常用Xpath和CSS3选择器对比
爬虫常用Xpath和CSS3选择器对比 1. 简介 CSS是来配合HTML工作的,和Xpath对比起来,CSS选择器通常都比较短小,但是功能不够强大.CSS中的空白符' '和Xpath的'//'都表示 ...
- python爬虫:XPath语法和使用示例
python爬虫:XPath语法和使用示例 XPath(XML Path Language)是一门在XML文档中查找信息的语言,可以用来在XML文档中对元素和属性进行遍历. 选取节点 XPath使用路 ...
- Python爬虫之xpath语法及案例使用
Python爬虫之xpath语法及案例使用 ---- 钢铁侠的知识库 2022.08.15 我们在写Python爬虫时,经常需要对网页提取信息,如果用传统正则表达去写会增加很多工作量,此时需要一种对数 ...
- 非常全的一份Python爬虫的Xpath博文
非常全的一份Python爬虫的Xpath博文 Xpath 是 python 爬虫过程中非常重要的一个用来定位的一种语法. 一.开始使用 首先我们需要得到一个 HTML 源代码,用来模拟爬取网页中的源代 ...
- 爬虫神器xpath的用法(三)
xpath的多线程爬虫 #encoding=utf-8 ''' pool = Pool(4) cpu的核数为4核 results = pool.map(爬取函数,网址列表) ''' from mult ...
- 爬虫神器XPath,程序员带你免费获取周星驰等明星热门电影
本教程由"做全栈攻城狮"原创首发,本人大学生一枚平时还需要上课,但尽量每日更新文章教程.一方面把我所习得的知识分享出来,希望能对初学者有所帮助.另一方面总结自己所学,以备以后查看. ...
- 互联网金融爬虫怎么写-第一课 p2p网贷爬虫(XPath入门)
版权声明:本文为博主原创文章,未经博主允许不得转载. 相关教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 ...
- 【爬虫】Xpath高级用法
xpath速度比较快,是爬虫在网页定位中的较优选择,但是很多网页前端代码混乱难以定位,而学习定位也较为不易(主要是全面的教程较少),这里列出一点编程过程中可能有用的东西,欢迎共同学习批评指正.试验环境 ...
- 爬虫 selenium+Xpath 爬取动态js页面元素内容
介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如 ...
- 抓包分析、多线程爬虫及xpath学习
1.抓包分析 1.1 Fiddler安装及基本操作 由于很多网站采用的是HTTPS协议,而fiddler默认不支持HTTPS,先通过设置使fiddler能抓取HTTPS网站,过程可参考(https:/ ...
随机推荐
- PS使用记录:人像(证件照)更换背景
PS使用记录:人像(证件照)更换背景 参考:非常干净的抠羽毛ps教程抠图羽毛 (1)准备2019PS,原图 (2)选择人像:选择->主体 (3)边缘处理:选择 ->选择并遮住 ->选 ...
- C# List<object> 按特定字段排序
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...
- Linux性能优化从入门到实战:07 CPU篇:CPU性能优化方法
性能优化方法论 动手优化性能之前,需要明确以下三个问题: (1)如何评估性能优化的效果? 确定性能的量化指标.测试优化前的性能指标.测试优化后的性能指标. 量化指标的选择.至少要从应用程序 ...
- 04机器学习实战之朴素贝叶斯scikit-learn实现
In [8]: import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl from sklearn.pre ...
- android 打卡 虚拟定位 sqlite
1.使用android5.1模拟器 android5.1模拟器使用数据库管理参数文件,6.0及以后的版本使用xml文件管理 2.使用sqlite修改配置文件 3.修改secure库中的android_ ...
- openprocess打不开 如何读取exe路径描述
openprocess打不开 如何读取exe路径描述 openprocess打不开 如何读取exe路径描述 https://bbs.pediy.com/thread-210652.htm https: ...
- thinkphp 项目不能直接域名访问 而要加index.php 才能访问
一.apache 服务器配置问题 vim /usr/local/apache2/conf/httpd.conf 在ifModule这里加入index.php <IfModule dir_modu ...
- PDO扩展
<?php class db extends PDO { private $error; private $sql; private $bind; private $errorCallbackF ...
- nginx主配置文件学习,以及nginx的反向代理和负载均衡
1.nginx.conf主配置文件学习 worker_processes : 表示nginx的进程数,根据CPU的核数来定义,起到优化的作用.通过cat /proc/cpuinfo来查看核数 even ...
- Cobaltstrike系列教程(二)-Listner与Payload生成 heatlevel
0x000-前文 Cobaltstrike系列教程(一)简介与安装 0x001-Listner(监听器)介绍 ①Cobaltstrike listner简介 可能有一些小白并不理解什么叫做listne ...
|