纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

Python爬虫XPath语法 一文掌握Python爬虫XPath语法

王曦   2021-11-18 我要评论
想了解一文掌握Python爬虫XPath语法的相关内容吗王曦在本文为您仔细讲解Python爬虫XPath语法的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Python爬虫XPath语法,Python爬虫,XPath语法下面大家一起来学习吧

本文转自微信公众号:"算法与编程之美"

一、问题描述

1.什么是XPath?

xpath是一门在XMLHTML文档中查找信息的语言可用来在XMLHTML文档中对元素和属性进行遍历XPath 通过使用路径表达式来选取 XML 文档中的节点或者节点集这些路径表达式和在常规的电脑文件系统中看到的表达式非常相似

二、解决方案

1.XPath语法

想要学好xpath首先要搞明白html文档中的节点

<div>
     <ul>
          <li class="item-0"><a href="link1.html" rel="external nofollow" >first item</a></li>
          <li class="item-1"><a href="link2.html" rel="external nofollow" >second item</a></li>
          <li class="item-inactive"><a href="link3.html" rel="external nofollow" >third item</a></li>
          <li class="item-1"><a href="link4.html" rel="external nofollow" >fourth item</a></li>
          <li class="item-0"><a href="link5.html" rel="external nofollow" >fifth item</a> # 注意此处缺少一个 </li> 闭合标签
      </ul>
  </div>

以上是在网上随便找的一段html的文本可以观察得到div的标签下是ul标签而ul标签下是li标签于是发现html的标签是一级一级如树状的Xpath正是通过这样的方式去寻找以生活中举例要确定一个人的位置首先确定他在中国然后确定他在某个省份哪座城市那个小区最后找到他

表达式

描述

Nodename

选取此节点的所有子节点 bookstore 选取bookstore下所有的子节点

/

如果是在最前面代表从根节点选取否则选择某节点下的某个节点 /bookstore 选取根元素下所有的bookstore节点

//

从全局节点中选择节点随便在哪个位置 //book 从全局节点中找到所有的book节点

@

选取某个节点的属性 //book[@price] 选择所有拥有price属性的book节点

.

当前节点

Text()

获取标签中的文本

同级标签可以用li[1] ,li[2] ,li[3]的方式获取

2.lxml库

简单介绍一下lxml库接下来会用到它

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

lxml和正则一样也是用C实现的是一款高性能的PythonHTML/XML解析器可以利用之前学习的XPath语法来快速的定位特定元素以及节点信息

3.实际案例

随便爬取一个网站找到找到网站的html文本

如下图:

要找到titlehref仔细观察可以得到路径分别是//div[@id="resultList"]/div[@class="el"]/p/span/a/@title

//div[@id="resultList"]/div[@class="el"]/p/span/a/@href

运行如下:

三、结语

Xpath是在爬虫中常见的提取数据的方式之一相比于正则它更加简单一些便于操作xpath的难点在于准确的确定数据所在的位置


相关文章

猜您喜欢

  • C++ 操作系统 内存分配 C++ 操作系统内存分配算法的实现详解

    想了解C++ 操作系统内存分配算法的实现详解的相关内容吗Carmelo_7在本文为您仔细讲解C++ 操作系统 内存分配的相关知识和一些Code实例欢迎阅读和指正我们先划重点:C++操作系统,C++内存分配算法下面大家一起来学习吧..
  • Python照片背景替换 Python 照片人物背景替换的实现方法

    想了解Python 照片人物背景替换的实现方法的相关内容吗剑客阿良_ALiang在本文为您仔细讲解Python照片背景替换的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Python照片处理,Python照片背景替换下面大家一起来学习吧..

网友评论

Copyright 2020 www.fresh-weather.com 【世纪下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式