文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python : Xpath简介及实例讲解

2023-09-15 15:42

关注

文章目录


前言

CSDN上已经有很多大佬发过Xpath,而且讲的都很好,我是因为刚开始学习网络爬虫,对这些基础重要知识不太了解,所以写一下来加深印象,本篇文章只是简单介绍一下Xpath及使用,总体来说比较基础。

一、Xpath简介

XPath(XML Path Language - XML路径语言),它是一种用来确定XML文档中某部分位置的语言。
Xpath以XML为基础,提供用户在数据结构树中寻找节点的能力,Xpath被很多开发者亲切的称为小型查询语言

二、Xpath语法规则

xpath可以使用路径表达式在XML上选取节点,从而达到确认元素的目的,我们先来介绍以下语法规则。

语法规则

表达式作用
nodename选取此层级节点下的所有子节点
/代表从根节点进行选取
//可以理解为匹配,就是在所有节点中选取此节点,直到匹配为止
.选取当前节点
选取当前节点上一层(上一级目录)
@选取属性(也是匹配)

标签定位

方式效果
/html/body/div表示从根节点开始寻找,标签与标签之间/表示一个层级
/html//div表示多个层级 作用于两个标签之间(也可以理解为在html下进行匹配寻找标签div)
//div从任意节点开始寻找,也就是查找所有的div标签
./div表示从当前的标签开始寻找div

属性定位

需求格式
定位div中属性名为href,属性值为‘www.baidu.com’的div标签@属性名=属性值
href为属性名 'www.baidu.com’为属性值/html/body/div[href=‘www.baidu.com’]

索引定位

需求格式
定位ul下第二个li标签(下图)//ul/li[2]
索引值开始位置为1

取文本内容

方法效果
/text()获取标签下直系的标签内容
//text()获取标签中所有的文本内容
string()获取标签中所有的文本内容

在网页上获取Xpath其实很容易,直接找到标签后,右键复制就好了。
在这里插入图片描述

三、语法规则练习

接下来我们开始练习一下本地导入,加深一下理解,这个是一个比较简单的网页结构,我们先学会用法即可。
在这里插入图片描述
任务要求: 可以达到随心所欲的定位每一个元素

准备工作

#导入所需要的包from lxml import etree#采用本地源码获取方式并加载到etree内tree = etree.parse('test.html')

获取百度、谷歌、搜狗文本内容

#引用xpath方法并进行标签定位#''.join是取字符串内的内容text = ' '.join(tree.xpath('/html/body/ul/li/a/text()'))print(text)

在这里插入图片描述
2.获取单个谷歌

text1 = tree.xpath("//ul/li[2]/a/text()")[0]print(text1)

在这里插入图片描述
3.获取北京、上海、天津的属性值

text2 = ' '.join(tree.xpath("//ol/li/a/@href"))print(text2)

在这里插入图片描述
4.获取河南文本

#获取河南文本text3 = tree.xpath("/html/body/div[2]/text()")[0]print(text3)

在这里插入图片描述
5.获取谷歌属性值

text4 = tree.xpath("//ul/li[2]/a/@href")[0]print(text4)

在这里插入图片描述

至此我们已经可以随心定位任意标签 完成任务 收工

来源地址:https://blog.csdn.net/xiaobai729/article/details/124079260

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯