爬虫教程1_Xpath 入门教程

这篇具有很好参考价值的文章主要介绍了爬虫教程1_Xpath 入门教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Xpath 入门教程

爬虫教程1_Xpath 入门教程,爬虫,爬虫,xml,xpath
在编写爬虫程序的过程中提取信息是非常重要的环节,但是有时使用正则表达式无法匹配到想要的信息,或者书写起来非常麻烦,此时就需要用另外一种数据解析方法,也就是本节要介绍的 Xpath 表达式。

Xpath表达式

XPath(全称:XML Path Language)即 XML 路径语言,它是一门在 XML 文档中查找信息的语言,最初被用来搜寻 XML 文档,同时它也适用于搜索 HTML 文档。因此,在爬虫过程中可以使用 XPath 来提取相应的数据。

提示:XML 是一种遵守 W3C 标椎的标记语言,类似于 HTML,但两者的设计目的是不同,XML 通常被用来传输和存储数据,而 HTML 常用来显示数据。

您可以将 Xpath 理解为在XML/HTML文档中检索、匹配元素节点的工具。

Xpath 使用路径表达式来选取XML/HTML文档中的节点或者节点集。Xpath 的功能十分强大,它除了提供了简洁的路径表达式外,还提供了100 多个内建函数,包括了处理字符串、数值、日期以及时间的函数。因此 Xpath 路径表达式几乎可以匹配所有的元素节点。

Python 第三方解析库 lxml 对 Xpath 路径表达式提供了良好的支持,能够解析 XML 与 HTML 文档。

Xpath节点

XPath 提供了多种类型的节点,常用的节点有:元素、属性、文本、注释以及文档节点。如下所示:

<?xml version="1.0" encoding="utf-8"?><website><site>  <title lang="zh-CN">website name</title>  <name>编程帮</name>  <year>2010</year>  <address>www.biancheng.net</address></site></website>

上面的 XML 文档中的节点例子:

<website></website> (文档节点)
<name></name> (元素节点)
lang="zh-CN" (属性节点) 

节点关系

XML 文档的节点关系和 HTML 文档相似,同样有父、子、同代、先辈、后代节点。如下所示:

<?xml version="1.0" encoding="utf-8"?><website><site>  <title lang="zh-CN">website name</title>  <name>编程帮</name>  <year>2010</year>  <address>www.biancheng.net</address></site></website>

上述示例分析后,会得到如下结果:

title name year address 都是 site 的子节点
site 是 title name year address  父节点
title name year address  属于同代节点
title 元素的先辈节点是 site website
website 的后代节点是 site title name year address

Xpath基本语法

1) 基本语法使用

Xpath 使用路径表达式在文档中选取节点,下表列出了常用的表达式规则:

表达式 描述
node_name 选取此节点的所有子节点。
/ 绝对路径匹配,从根节点选取。
// 相对路径匹配,从所有节点中查找当前选择的节点,包括子节点和后代节点,其第一个 / 表示根节点。
. 选取当前节点。
选取当前节点的父节点。
@ 选取属性值,通过属性值选取数据。常用元素属性有 @id 、@name、@type、@class、@tittle、@href。

下面以下述代码为例讲解 Xpath 表达式的基本应用,代码如下所示:

<ul class="BookList">  <li class="book1" id="book_01" href="http://www.biancheng.net/">        <p class="name">c语言小白变怪兽</p>        <p class="model">纸质书</p>        <p class="price">80元</p>        <p class="color">红蓝色封装</p>    </li>      <li class="book2" id="book_02" href="http://www.biancheng.net/">        <p class="name">Python入门到精通</p>        <p class="model">电子书</p>        <p class="price">45元</p>        <p class="color">蓝绿色封装</p>    </li></ul>

路径表达式以及相应的匹配内容如下:

xpath表达式://li

匹配内容:
c语言小白变怪兽
纸质书
80元
红蓝色封装
   

Python入门到精通
电子书
45元
蓝绿色封装

xpath表达式://li/p[@class="name"]
匹配内容:
c语言小白变怪兽
Python入门到精通


xpath表达式://li/p[@class="model"]
匹配内容:
纸质书
电子书

xpath表达式://ul/li/@href
匹配内容:
http://www.biancheng.net/
http://www.biancheng.net/

xpath表达式://ul/li
匹配内容:
c语言小白变怪兽
纸质书
80元
红蓝色封装
  
Python入门到精通
电子书
45元
蓝绿色封装

注意:当需要查找某个特定的节点或者选取节点中包含的指定值时需要使用[]方括号。如下所示:

xpath表达式://ul/li[@class="book2"]/p[@class="price"]
匹配结果:45元
2) xpath通配符

Xpath 表达式的通配符可以用来选取未知的节点元素,基本语法如下:

通配符 描述说明
* 匹配任意元素节点
@* 匹配任意属性节点
node() 匹配任意类型的节点

示例如下:

xpath表达式://li/*

匹配内容:
c语言小白变怪兽
纸质书
80元
红蓝色封装
Python入门到精通
电子书
45元
蓝绿色封装
3) 多路径匹配

多个 Xpath 路径表达式可以同时使用,其语法如下:

xpath表达式1 | xpath表达式2 | xpath表达式3

示例应用:

表达式://ul/li[@class="book2"]/p[@class="price"]|//ul/li/@href

匹配内容:
45元
http://www.biancheng.net/
http://www.biancheng.net/

Xpath内建函数

Xpath 提供 100 多个内建函数,这些函数给我们提供了很多便利,比如实现文本匹配、模糊匹配、以及位置匹配等,下面介绍几个常用的内建函数。

函数名称 xpath表达式示例 示例说明
text() ./text() 文本匹配,表示值取当前节点中的文本内容。
contains() //div[contains(@id,‘stu’)] 模糊匹配,表示选择 id 中包含“stu”的所有 div 节点。
last() //*[@class=‘web’][last()] 位置匹配,表示选择@class='web’的最后一个节点。
position() //*[@class=‘site’][position()<=2] 位置匹配,表示选择@class='site’的前两个节点。
start-with() “//input[start-with(@id,‘st’)]” 匹配 id 以 st 开头的元素。
ends-with() “//input[ends-with(@id,‘st’)]” 匹配 id 以 st 结尾的元素。
concat(string1,string2) concat(‘C语言中文网’,.//*[@class=‘stie’]/@href) C语言中文与标签类别属性为"stie"的 href 地址做拼接。

想要了解更多关于 Xpath 的知识可访问官方网站:https://www.w3.org/TR/xpath/文章来源地址https://www.toymoban.com/news/detail-627139.html

到了这里,关于爬虫教程1_Xpath 入门教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫| 一文掌握XPath

    本篇文章主要介绍利用 Python爬虫爬取付费文章 ,适合练习爬虫基础同学,文中描述和代码示例很详细,干货满满,感兴趣的小伙伴快来一起学习吧! ☀️大家好!我是新人小白博主朦胧的雨梦,希望大家多多关照和支持😝😝😝 🌖大家一起努力,共同成长,相信我们都会

    2024年02月05日
    浏览(48)
  • python爬虫数据解析xpath

    下载地址:百度网盘 请输入提取码 第一步: 下载好文件后会得到一个没有扩展名的文件,重命名该文件将其改为.rar或者.zip等压缩文件,解压之后会得到一个.crx文件和一个.pem文件。新建一个文件夹,将这两个文件放在该文件夹(本人将其命名为xpath-helper)内。 第二步: 将

    2024年02月10日
    浏览(39)
  • 爬虫实战:探索XPath爬虫技巧之热榜新闻

    之前我们已经详细讨论了如何使用BeautifulSoup这个强大的工具来解析HTML页面,另外还介绍了利用在线工具来抓取HTTP请求以获取数据的方法。在今天的学习中,我们将继续探讨另一种常见的网络爬虫技巧:XPath。XPath是一种用于定位和选择XML文档中特定部分的语言,虽然它最初是

    2024年03月21日
    浏览(42)
  • 爬虫之xpath插件下载与使用

    国内下载地址:https://chrome.zzzmh.cn/info?token=hgimnogjllphhhkhlmebbmlgjoejdpjl

    2024年02月06日
    浏览(50)
  • Python爬虫学习笔记(四)————XPath解析

    目录 0.xpath最新下载地址和安装教程 1.xpath安装 2.xpath基本使用 3.xpath基本语法 4.实例 (1)xpath解析本地文件  (2)xpath解析服务器响应的数据 ①获取百度网站的“百度一下”四个字 ②获取站长素材网站情侣图片前十页的图片 0.xpath最新下载地址和安装教程 https://blog.csdn.net/

    2024年02月16日
    浏览(48)
  • 〖Python网络爬虫实战⑫〗- XPATH语法介绍

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2023年04月14日
    浏览(56)
  • Python爬虫解析工具之xpath使用详解

    爬虫抓取到整个页面数据之后,我们需要从中提取出有价值的数据,无用的过滤掉。这个过程称为 数据解析 ,也叫 数据提取 。数据解析的方式有多种,按照 网站数据来源 是静态还是动态进行分类,如下: 动态网站: 字典取值 。动态网站的数据一般都是JS发过来的,基本

    2024年02月12日
    浏览(52)
  • day5 反爬虫和Xpath语法

    day5 反爬虫和Xpath语法 一、request跳过登录 二、selenium跳过登录 (一)、创建浏览器打开需要自动登录的网页 (二)、留足够长的时间让人工完成登录(必须得保证b指向的窗口网页中能看到登录以后的信息) (三)、获取登录成功后的cookie登录信息,保存到本地文件 三、s

    2023年04月09日
    浏览(35)
  • 网络爬虫(二)——Xpath和Selenium的使用

    虽然正则表达式处理字符串的能力很强,但是在编写正则表达式的时候代码还是比较麻烦的,如果不小心写错一处,那么将无法匹配页面中所需要的数据,因为网页中包含大量的节点,而节点中又包含id、class等属性。如果在解析页面中的数据时,通过Xpath来定位网页中的数据

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包