| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 浅识XPath(熟练掌握XPath的语法)【python爬虫入门进阶】(03) -> 正文阅读 |
|
[Python知识库]浅识XPath(熟练掌握XPath的语法)【python爬虫入门进阶】(03) |
前言(为什么写这篇文章)前面两篇文章我们分别介绍了爬虫程序的标准步骤,以及如何熟练的使用Requests库拉取网页数据。这一篇文章就重点介绍解析网页数据利器XPath。由于其比较重要,接下来我会用两篇文章进行介绍。 文章目录XPath介绍XPath(XML Path Language)是一门XML文档中查找信息的语言,XPath可用来在XML(包括HTML)文档中对元素和属性进行查找以及遍历。后面会详细介绍XML和HTML文档的结构组成 XPath开发工具既然XPath是用来解析网页的数据,就必须要能够通过一定的规则匹配到所需要爬取的数据。这里就要用到XPath的开发工具。
XML文档介绍在正式介绍XPath之前还是让我们来重新认识一个XML文档,XML是一种可扩展的标记语言(Extensible Markup Language) HTML文档(网页)HTML文档也就是我们前面反复提到的网页,它是一种超文本标记语言,主要用来在浏览器上展示数据以及构建页面样式。它本质上跟XML类似,也是通过各种标签包装数据。不过它的标签不是我们自行定义的。 XML和HTML的区别
XML文档示例
其中: 从上面的示例就可以清晰的看出XML文档就是由一个个节点组成。在XPath中,有七种类型的节点(Node),分别是元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。最外面的节点被称为文档节点或根节点。 HTML的示例
一个标准的HTML主要包括Head元素以及Body元素。head元素内主要包括标题 HTML元素的关系如上图所示,我们可以整理出HTML元素的关系。 父节点(Parent)除了根节点之外,每个元素都有一个父节点。就像每个孩子都有一个父亲一个意思。 子节点(Children)一个元素可以有零个,一个或者多个子节点,就像每个父亲都可能有零个,一个或者多个孩子 同胞(Sibling)拥有相同的父节点的元素,就是拥有相同父亲的兄弟 先辈(Ancestor)某个节点的父节点的父节点,就是祖父级别,就是爷爷辈 后代(Descendant)某个节点的子,子的子,等等,就是孙子辈 选取节点XPath使用路径表达式在XML文档(HTML文档)中选取节点,节点通过沿着路径或者跳跃(step)选取。下面就罗列比较常用的路径表达式。下面的示例还是以前面提到的HTML为例。这里将代码放在了一个XPath.html文件中。然后访问该文件。
实例
谓语谓语用来查找某个特定的节点或者包含某个指定值的节点,被嵌在方括号中。
通配符XPath 通配符可用来获取未知的XML元素(包括HTML元素)
举例
选取若干路径通过在路径表达式中使用“|”运算符,您可以选取若干个路径。
XPath的运算符下面列出了可用在 XPath 表达式中的运算符:
总结本文详细介绍了XPath的语法内容,学会语法内容就能快速的写出我们需要抓取的数据的表达式。 粉丝专属福利
? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 23:47:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |