文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python爬虫中Xpath语法怎么用

2023-06-27 10:20

关注

这篇“Python爬虫中Xpath语法怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python爬虫中Xpath语法怎么用”文章吧。

什么是 Xpath?

       XPath 即为 XML 路径语言,它是一种用来确定 XML (标准通用标记语言子集)文档中某部分位置的语言。XPath 基于 XML 的树状结构,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将其作为一个通用的、介于 XPointer 与 XSL 间的语法模型。但是  XPath 很快的被开发者采用来当作小型查询语言。

       简单的来说:Xpath(XML Path Language)是一门在 XML 和 HTML 文档中查找信息的语言,可用来在 XML 和 HTML 文档中对元素和属性进行遍历。

XPath 开发工具

       这里给大家介绍两个小编用得较多也是用得最为广泛与便捷的工具:

       当然 Chrome 插件 XPath Helper 也可以寻找安装包后通过插件伴侣安装,安装方法步骤如下:

  1.  打开插件伴侣,选择下载好的插件;

  2. 选择提取插件内容到桌面,桌面上会多一个文件夹;

  3. 把文件夹放入想要放的路径下;

  4. 打开谷歌浏览器,选择扩展程序,开发者模式打开,选择加载已解压的扩展程序,选择路径打开即可。

XPath 节点

       在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。

XPath 语法

       XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。

       使用方式:

       使用 // 获取整个页面当中的元素,然后写标签名,然后在写谓语进行提取,比如:

//title[@lang='en']

       需要注意的知识点:

//title[contains(@lang,'en')]

lxml 库

       lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据。

       该库为第三方库需使用 pip 进行安装,命令如下:

pip install lxml

 基本使用:

       如下是案例实操的 html 文件代码,屏幕前的小伙伴可以保存下来一起动手练习。

<div>

    <ul>

         <li class="im-0"><a href="link1.html"> first </a></li>

         <li class="im-1"><a href="link2.html"> second </a></li>

         <li class="im-active"><a href="link3.html"> third </a></li>

         <li class="im-1"><a href="link4.html"> fourth </a></li>

         <li class="im-0"><a href="link5.html"> fifth </a>

     </ul>

 </div>

案例 1:将字符串解析为 html 文档

from lxml import etree

text = ''

html = etree.HTML(text) #读取

print(html)

# 按字符串序列化html

result = etree.tostring(html).decode('utf-8')

print(result)

案例 2:从文件中读取 html 代码:

from lxml import etree

html = etree.parse('hello.html') #读取

# 按字符串序列化html

result = etree.tostring(html).decode('utf-8')

print(result)

案例 3:在 lxml 中使用 Xpath 语法

from lxml import etree

html = etree.parse('hello.html')

# 获取所有 li 标签:

# result = html.xpath('//li')

# print(result)

# for i in result:

#     print(etree.tostring(i))

# 获取所有li元素下的所有 class 属性的值:

# result = html.xpath('//li/@class')

# print(result)

# 获取 li 标签下 href 为https://www.yisu.com/的 a 标签:

# result = html.xpath('//li/a[@href="https://www.yisu.com/"]')

# print(result)

# 获取 li 标签下所有 span 标签:

# result = html.xpath('//li//span')

# print(result)

# 获取 li 标签下的 a 标签里的所有 class:

# result = html.xpath('//li/a//@class')

# print(result)

# 获取最后一个 li 的 a 的 href 属性对应的值:

# result = html.xpath('//li[last()]/a/@href')

# print(result)

# 获取倒数第二个 li 元素的内容:

# result = html.xpath('//li[last()-1]/a')

# print(result)

# print(result[0].text)

# 获取倒数第二个 li 元素的内容的第二种方式:

result = html.xpath('//li[last()-1]/a/text()')

print(result)

以上就是关于“Python爬虫中Xpath语法怎么用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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