一文掌握Python爬虫XPath语法

目录
  • 一、问题描述
    • 1.什么是XPath?
  • 二、解决方案
    • 1.XPath语法
    • 2.lxml库
    • 3.实际案例
  • 三、结语

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

一、问题描述

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的难点在于准确的确定数据所在的位置。

到此这篇关于一文掌握Python爬虫XPath语法的文章就介绍到这了,更多相关Python爬虫XPath语法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python爬虫必备之XPath解析库

    一.简介 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历.XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上. Xpath解析库介绍:数据解析的过程中使用过正则表达式, 但正则表达式想要进准匹配难度较高, 一旦正则表达式书写错误, 匹配的数据也会出错. 网页由三部分组成: HTML, Css, JavaScript, HTML页面标签存在层级关系, 即DOM树,

  • Python爬虫基础之XPath语法与lxml库的用法详解

    前言 本来打算写的标题是XPath语法,但是想了一下Python中的解析库lxml,使用的是Xpath语法,同样也是效率比较高的解析方法,所以就写成了XPath语法和lxml库的用法 XPath 即为 XML 路径语言,它是一种用来确定 XML(标准通用标记语言的子集)文档中某部分位置的语言. XPath 基于 XML 的树状结构,提供在数据结构树中找寻节点的能力. XPath 同样也支持HTML. XPath 是一门小型的查询语言. python 中 lxml库 使用的是 Xpath 语法,是

  • Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)

    一.分析链接 上一篇文章指路 一般来说,我们参加某个网站的盖楼抽奖活动,并不是仅仅只参加一个,而是多个盖楼活动一起参加. 这个时候,我们就需要分析评论的链接是怎么区分不同帖子进行评论的,如上篇的刷帖链接,具体格式如下: https://club.hihonor.com/cn/forum.php?mod=post&action=reply&fid=154&tid=21089001&extra=page%3D1&replysubmit=yes&infloat=y

  • python爬虫之xpath的基本使用详解

    一.简介 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历.XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上. 二.安装 pip3 install lxml 三.使用 1.导入 from lxml import etree 2.基本使用 from lxml import etree wb_data = """ <div> <u

  • 一文掌握Python爬虫XPath语法

    目录 一.问题描述 1.什么是XPath? 二.解决方案 1.XPath语法 2.lxml库 3.实际案例 三.结语 本文转自微信公众号:"算法与编程之美" 一.问题描述 1.什么是XPath? xpath是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历,XPath 通过使用路径表达式来选取 XML 文档中的节点或者节点集.这些路径表达式和在常规的电脑文件系统中看到的表达式非常相似. 二.解决方案 1.XPath语法 想要学好xpath,

  • Python爬虫Xpath定位数据的两种方法

    方法一:直接右键,将文章路径复制下来点击Copy full Xpath 使用selenium+lxml中的etree进行配合使用,使用etree解析html网页 import requests from lxml import etree import time import socket import csv from selenium import webdriver from configparser import ConfigParser from selenium.webdriver

  • Python爬虫必备之Xpath简介及实例讲解

    目录 前言 一.Xpath简介 二.Xpath语法规则 语法规则 标签定位 属性定位 索引定位 取文本内容 三.语法规则练习 总结 前言 网上已经有很多大佬发过Xpath,而且讲的都很好,我是因为刚开始学习网络爬虫,对这些基础重要知识不太了解,所以写一下来加深印象,本篇文章只是简单介绍一下Xpath及使用,总体来说比较基础. 一.Xpath简介 XPath(XML Path Language - XML路径语言),它是一种用来确定XML文档中某部分位置的语言. Xpath以XML为基础,提供用户

  • python爬虫lxml库解析xpath网页过程示例

    目录 前言 (一)xpath是什么 (二)xpath的基本语法 路径查询. (三) lxml库 (四)lxml库的使用 导入lxml.etree (五)实例演示 前言 在我们抓取网页内容的时候,通常是抓取一整个页面的内容,而我们仅仅只是需要该网页中的部分内容,那该如何去提取呢?本章就带你学习xpath插件的使用.去对网页的内容进行提取. (一)xpath是什么 xpath是一门在XML文档中查找信息的语言,xpath可用来在XML 文档中对元素和属性进行遍历,主流的浏览器都支持xpath,因为h

  • python Xpath语法的使用

    一.XMl简介 (一)什么是 XML XML 指可扩展标记语言(EXtensible) XML 是一种标记语言,很类似 HTML. XML 的设计宗旨是传输数据,而非显示数据. XML 的标签需要我们自行定义. XML 被设计为具有自我描述性. XML 是 W3C 的推荐标准. W3School 官方文档:http://www.w3school.com.cn/xml/index.asp (二)XML 和 HTML 的区别 他们两者都是用于操作数据或者结构数据,在结构上大致相同的,但他们在本质上却

  • python爬虫指南之xpath实例解析(附实战)

    目录 前言 环境的安装 属性定位 索引定位 取文本 取属性 总结 前言 XPath,全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言,它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索 XPath的选择功能十分强大,它提供了非常简明的路径选择表达式,另外,它还提供了超过100个内建函数,用于字符串.数值.时间的匹配以及节点.序列的处理等,几乎所有我们想要定位的节点,都可以用XPath来选择 xpath解析原理: 1.实现标签的定位:实例

  • python爬虫教程之bs4解析和xpath解析详解

    目录 bs4解析 原理: 如何实例化BeautifulSoup对象: 用于数据解析的方法和属性: xpath解析 xpath解析原理: 实例化一个etree对象: xpath(‘xpath表达式’) 总结 bs4解析 原理: 1.实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中 2.通过调用BeautifulSoup对象中相关的属性或者方法进行标签定位和数据提取 如何实例化BeautifulSoup对象: from bs4 import BeautifulSoup Be

  • Python实现的文轩网爬虫完整示例

    本文实例讲述了Python实现的文轩网爬虫.分享给大家供大家参考,具体如下: encoding=utf8 import pymysql import time import sys import requests import os #捕获错误 import traceback import types #将html实体化 import cgi import warnings reload(sys) sys.setdefaultencoding('utf-8') from pyquery imp

随机推荐