xpath应用大全

embedded/2024/10/20 6:11:42/
htmledit_views">

一、xpath在爬虫中的应用

1、/div 表示从根节点开始选取div节点

2、/span 表示从根节点开始选取span节点

3、//a 表示选取文档中所有a节点而不考虑其位置

4、@class 表示选取名为class的属性

5、 . 表示选取当前节点

6、 .. 表示选取当前节点的父节点

7、/div/a 表示从根节点开始选取div节点下的a节点

8、 /div/a[2]/img  表示从根节点开始选取div节点下的第二个a节点下的img节点

9、//div[@class='header-wrapper' 表示选取所有属性class的值为header-warpper的div节点

10、//* 表示选取文档中所有元素

11、//@* 表示选取文档中所有带属性的元素

12、/div/p/text() 表示选取p节点的文本内容

13、/div[contains(@class,"post")] 表示选取带有class属性且包含“post”的所有的div节点,取反//div[not(contains(@class,"post"))]

14、//div/p[last()-1] 表示选取div下倒数第二个p节点

15、//div/p[position()>1] 表示选取div下第二个p节点后的所有兄弟节点

二、xpath在爬虫中的应用场景

  1. 定位元素:使用XPath表达式可以精确地定位到网页中的特定元素,如标题、链接、图片等。

  2. 提取数据:结合XPath和爬虫工具(如Python的lxml、BeautifulSoup等库),可以轻松地提取网页中的数据,如商品价格、新闻标题、文章正文等。

  3. 处理复杂的HTML结构:面对复杂的HTML结构,XPath的灵活性和强大功能使其成为处理这类问题的理想选择。

  4. 自动化表单填写:在网页自动化测试或数据提交过程中,XPath可以用来定位表单元素,并模拟用户输入。

 三、使用xpath的基本步骤

  1. 分析网页结构:首先,你需要分析目标网页的HTML结构,确定要提取的数据位于哪些元素中。

  2. 编写XPath表达式:根据网页结构,编写XPath表达式来定位并提取所需的数据。XPath表达式可以使用标签名、属性、位置等信息来构建。

  3. 使用XPath提取数据:在你的爬虫脚本中,使用XPath解析库(如lxml、BeautifulSoup等)来执行XPath表达式,并提取数据。

四、xpath进阶用法

  1. 位置谓词
    • //ul/li[1]:选择ul下的第一个li元素。
    • //div[@class='article']/p[position()=last()]:选择classarticlediv下的最后一个p元素。
  2. 比较运算符
    • //p[@id='para1']:选择id属性为para1p元素。
    • //a[@href!='#']:选择href属性不等于#a元素。
  3. 逻辑运算符
    • //input[@type='text' and (@name='username' or @name='email')]:选择typetextnameusernameemailinput元素。
  4. 内置函数
    • contains(str1, str2):判断str1是否包含str2
    • starts-with(str, prefix):判断字符串str是否以prefix开头。
    • substring-before(str, delim):返回strdelim之前的子字符串。
    • substring-after(str, delim):返回strdelim之后的子字符串。

 


http://www.ppmy.cn/embedded/119962.html

相关文章

uni-app进行微信小程序开发,快速上手

准备工作 IDE https://www.dcloud.io/hbuilderx.html 微信小程序开发工具 下载 / 稳定版更新日志 (qq.com) 安装流程 打开HBuilderX 点击这个logo打开终端 然后 下载一下终端插件 初始化一个demo 通过vue-cli命令行创建项目 uni-app官网 (dcloud.net.cn) (官…

Spring AOP异步操作实现

在Spring框架中,AOP(面向切面编程)提供了一种非常灵活的方式来增强应用程序的功能。异步操作是现代应用程序中常见的需求,尤其是在处理耗时任务时,它可以帮助我们提高应用程序的响应性和吞吐量。Spring提供了一种简单的…

高精度(1)——高精度减法

题目描述 给定两个正整数(不含前导 0),计算它们的差,计算结果可能为负数。 输入格式 共两行,每行包含一个整数。 输出格式 共一行,包含所求的差。 数据范围 1≤整数长度≤100000 输入样例 32 11 …

周成虎院士团队和朴世龙院士合作发表Nature Communications:中国植树造林的固碳潜力评估

本文首发于“生态学者”微信公众号! 编者荐语:以下论文是中国科学院地理科学与资源研究所周成虎院士研究团队和朴世龙院士近期合作发表的研究,研究发现在中国强烈的人地矛盾和耕林博弈背景下,相较于新增林地,加密现有…

Windows 命令

在 Windows 系统中,你可以使用命令行工具来执行各种任务,比如文件管理、网络诊断、系统维护等。下面是一些常用的 Windows 命令及其用途。 文件管理命令 dir:列出当前目录下的文件和子目录。 dircd:改变当前目录。 cd pathmd 或 …

数据结构2——单链表

在数据结构1——顺序表(C语言版)中,我们已经了解了顺序表的使用和实现,总结一下顺序表的优点: ①尾插尾删效率足够快; ②下标的随机访问和修改也足够方便。 可除此之外顺序表也确实存在着不足: …

Gson将对象转换为JSON(学习笔记)

JSON有两种表示结构,对象和数组。对象结构以"{"大括号开始,以"}"大括号结束。中间部分由0或多个以”,"分隔的”key(关键字)/value(值)"对构成,关键字和值之间以":"分隔,语法结…

如何在Excel中快速找出前 N 名,后 N 名

有如下销售额统计表: 找出销售额排前 10 名的产品及其销售额,和销售额排倒数 10 名以内的产品及其销售额,结果如下所示: 前 10 名: spl("E(?1).sort(ProductSales:-1).to(10)",A1:C78)后 10 名&#xff1…