广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python数据解析之XPath详解
  • 290
分享到

python数据解析之XPath详解

2024-04-02 19:04:59 290人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录XPathXPath使用方法案例—58二手房总结XPath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 x

XPath

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。

xpath是最常用且最便捷高效的一种解析方式,通用型强,其不仅可以用于python语言中,还可以用于其他语言中,数据解析建议首先xpath。

XPath使用方法

xpath解析原理:

实例化一个etree的对象,且需要将被解析的页面源代码数据加载到该对象中

调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获

安装lxml

pip install -i https://mirrors.aliyun.com/pypi/simple/ lxml


from lxml import etree
tree = etree.parse('./tree.html')  #从本地加载源码,实例化一个etree对象。必须是本地的文件,不能是字符串
tree = etree.HTML(源码)           #从互联网加载源码,实例化etree对象
#  / 表示从从根节点开始,一个 / 表示一个层级,//表示多个层级
r = tree.xpath('//div//a')       #以列表的形式返回div下的所有的a标签对象的地址
r = tree.xpath('//div//a')[1]    #返回div下的第二个a标签对象地址
r = tree.xpath('//div[@class="tang"]')   #以列表的形式返回tang标签地址
r = tree.xpath('//div[@class="tang"]//a') #以列表的形式返回tang标签下所有的a标签地址
#获取标签中的文本内容
r = tree.xpath('//div[@class="tang"]//a/text()') #以列表的形式返回所有a标签中的文本
#获取标签中属性值
r = tree.xpath('//div//a/@href')   ##以列表的形式返回所有a标签中href属性值

tree.html


<html lang="en">
    <head>
      <meta charset="utf-8" />
      <meta name="theme-color" content="#ffffff"></meta>
      <title>xpaht测试</title>
    </head>
    <body>
        <div>
            <p>百里守约</p>
        </div>
        <div class="song">
            <p>前程似锦</p>
        </div>
        <div class="song">
            <p>前程似锦2</p>
        </div>
        <div class="ming">  #后面改了名字
            <p>以梦为马</p>
        </div>  
        <div class="tang">
            <ul>
                <li><a href='Http://123.com' title='qing'>清明时节</a></li>
                <li><a href='http://ws.com' title='qing'>秦时明月</a></li>
                <li><a href='http://xzc.com' title='qing'>汉时关</a></li>
            </ul>
        </div>
      <flink-root></flink-root>
        <script type="text/javascript" src="runtime.0dcf16aad31edd73D8e8.js"></script>
        <script type="text/javascript" src="es2015-polyfills.923637a8e6d276e6f6df.js"></script>
        <script type="text/javascript" src="polyfills.bb2456cce5322b484b77.js"></script>
        <script type="text/javascript" src="main.8128365baee3dc30e607.js"></script>
    </body>
</html>

案例—58二手房

将页面中的房源名称解析出来,即将title值解析出来就行

思路

  • 获取房源名称所在的url,并获取其响应数据
  • 数据解析,构造xpath表达式。提取目标数据

import requests
from lxml import etree
url = "https://bj.58.com/ershoufang/p1/"
headers={
    'User-Agent':'Mozilla/5.0 (linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWEBKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36'
}
pag_response = requests.get(url,headers=headers,timeout=3).text
#实例化一个etree对象
tree = etree.HTML(pag_response)
r = tree.xpath('//span[@class="content-title"]/text()') #获取所有//span标签为"content-title"的文本内容
print(r)

Tips:我们使用xpath进行数据解析时,不能直接看元素就进行构造xpath表达式,以为很多情况下从浏览中看的元素结构和爬取下来的源码结构不一样。所以正确方法是先将源码爬下来再观察进行构造xpath。

如下浏览器中的元素结构和爬取的元素结构就不一样。如果按照浏览器汇总的元素来构造xpath表达式,则不会解析成功!

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: python数据解析之XPath详解

本文链接: https://www.lsjlt.com/news/137179.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python数据解析之XPath详解
    目录XPathXPath使用方法案例—58二手房总结XPath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 x...
    99+
    2022-11-12
  • 【Python爬虫】数据解析之bs4解析和xpath解析
    🔥一个人走得远了,就会忘记自己为了什么而出发,希望你可以不忘初心,不要随波逐流,一直走下去🎶 🦋 欢迎关注🖱点赞👍收...
    99+
    2023-09-06
    python 爬虫 开发语言
  • python爬虫教程之bs4解析和xpath解析详解
    目录bs4解析原理:如何实例化BeautifulSoup对象:用于数据解析的方法和属性:xpath解析xpath解析原理:实例化一个etree对象:xpath( ‘xpa...
    99+
    2022-11-13
  • Python的xpath数据解析案例分析
    这篇“Python的xpath数据解析案例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python的xpath数据解析...
    99+
    2023-06-29
  • Python爬虫实战之xpath解析
    XPath 是一门在 XML 文档中查找信息的语言,最初是用来搜寻 XML 文档的,但是它同样适用于 HTML 文档的搜索。 所以在Python爬虫中,我们经常使用xpath解析这种高效便捷的方式来提...
    99+
    2023-09-23
    python 爬虫 开发语言
  • python数据XPath使用案例详解
    目录XPathXPath使用方法xpath解析原理:安装lxml案例—58二手房XPath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML...
    99+
    2022-11-12
  • Python爬虫必备之XPath解析库
    目录一、简介二、安装三、节点3.1 选取节点3.2 选取未知节点3.3 节点关系四、XPath实例一、简介 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历...
    99+
    2022-06-02
    XPath解析库的使用 Python Xpath
  • Python使用XPath解析HTML的方法详解
    目录引言XPath语法XPath方法Python中使用XPath解析HTML文档XPath表达式示例选择节点谓词运算符示例代码总结引言 XPath是一种用于选择XML文档中节点的语言...
    99+
    2023-05-19
    Python XPath解析HTML Python 解析HTML Python XPath
  • python爬虫指南之xpath实例解析
    Python爬虫指南之XPath实例解析XPath是一种用于在XML文档中进行导航和查找元素的语言。在爬虫中,XPath可以用于解析...
    99+
    2023-08-15
    python
  • Python数据分析之pandas函数详解
    目录一、apply和applymap二、排序三、处理缺失数据一、apply和applymap 1. 可直接使用NumPy的函数 示例代码: # Numpy ufunc 函数 df...
    99+
    2022-11-12
  • Python数据分析之matplotlib绘图详解
    目录多子图散点图水平柱状图同位置柱状图多子图 figure是绘制对象(可以理解为一个空白的画布),一个figure对象可以包含多个Axes子图,一个Axes是一个绘图区域,不加设置时...
    99+
    2022-11-11
  • Python爬虫必备之XPath解析库的示例分析
    小编给大家分享一下Python爬虫必备之XPath解析库的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、简介XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进...
    99+
    2023-06-15
  • Python实战使用XPath采集数据示例解析
    目录lxml发送请求明确需求:解析数据保存数据lxml lxml 是 Python 的一个库,用于解析和呈现 XML 和 HTML。它支持多种内置和第三方 XML 和 HTML 标记...
    99+
    2023-05-16
    Python XPath采集数据 Python XPath
  • python使用XPath解析数据爬取起点小说网数据
    目录1. xpath 的介绍优点:安装lxml库XML的树形结构:选取节点的表达式举例:2. 爬取起点小说网在浏览器中获取书名和作者测试使用xpath获取起点小说网的数据1. xpa...
    99+
    2022-11-12
  • python数据分析之文件读取详解
    目录前言:一·Numpy库中操作文件二·Pandas库中操作文件三·补充总结前言: 如果你使用的是Anaconda中的Jupyter,则不需要下载Pands和Numpy库;如果你使用...
    99+
    2022-11-12
  • python爬虫指南之xpath实例解析(附实战)
    目录前言环境的安装属性定位索引定位取文本取属性总结前言 XPath,全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言,它最初是用来搜寻X...
    99+
    2022-11-13
  • python中bs4解析和xpath解析的示例分析
    这篇文章给大家分享的是有关python中bs4解析和xpath解析的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。bs4解析原理:实例化一个BeautifulSoup对象,并且将页面源码数据加载到该对象中...
    99+
    2023-06-29
  • Python数据分析之Numpy库的使用详解
    目录前言🧡Numpy库介绍💙ndarray 类常用属性💚Numpy常用函数🍓array函数🥝arang...
    99+
    2022-11-12
  • 一个Python案例带你掌握xpath数据解析方法
    目录xpath基本概念xpath解析原理环境安装如何实例化一个etree对象xpath(‘xpath表达式’)xpath爬取58二手房实例xpath图片解析下...
    99+
    2022-11-13
  • python如何使用XPath解析数据爬取起点小说网数据
    小编给大家分享一下python如何使用XPath解析数据爬取起点小说网数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python的数据类型有哪些python的...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作