广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python数据XPath使用案例详解
  • 140
分享到

python数据XPath使用案例详解

2024-04-02 19:04:59 140人浏览 泡泡鱼

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

摘要

目录XPathXPath使用方法xpath解析原理:安装lxml案例—58二手房XPath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML

XPath

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

XPath使用方法

xpath解析原理:

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

2.调用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表达式,则不会解析成功!

以上就是python数据XPath使用案例详解的详细内容,更多关于Python数据XPath使用的资料请关注编程网其它相关文章!

--结束END--

本文标题: python数据XPath使用案例详解

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

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

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

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

下载Word文档
猜你喜欢
  • python数据XPath使用案例详解
    目录XPathXPath使用方法xpath解析原理:安装lxml案例—58二手房XPath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML...
    99+
    2022-11-12
  • Python的xpath数据解析案例分析
    这篇“Python的xpath数据解析案例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python的xpath数据解析...
    99+
    2023-06-29
  • python数据解析之XPath详解
    目录XPathXPath使用方法案例—58二手房总结XPath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 x...
    99+
    2022-11-12
  • 一个Python案例带你掌握xpath数据解析方法
    目录xpath基本概念xpath解析原理环境安装如何实例化一个etree对象xpath(‘xpath表达式’)xpath爬取58二手房实例xpath图片解析下...
    99+
    2022-11-13
  • Python实战使用XPath采集数据示例解析
    目录lxml发送请求明确需求:解析数据保存数据lxml lxml 是 Python 的一个库,用于解析和呈现 XML 和 HTML。它支持多种内置和第三方 XML 和 HTML 标记...
    99+
    2023-05-16
    Python 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 ord函数()案例详解
    python中ord函数 Python ord()函数 (Python ord() function) ord() function is a libr...
    99+
    2022-11-12
  • Python torch.flatten()函数案例详解
    先看函数参数: torch.flatten(input, start_dim=0, end_dim=-1) input: 一个 tensor,即要被“推平”的 tensor。 ...
    99+
    2022-11-12
  • python中session的使用案例详解
    目录python中session的使用扩展:Selenium如何获取cookies保存起来用于下次访问一、获取cookie二、加载cookiepython中session的使用 使用...
    99+
    2023-05-19
    Selenium获取cookies Selenium获取cookies保存 python session使用
  • python读取mnist数据集方法案例详解
    mnist手写数字数据集在机器学习中非常常见,这里记录一下用python从本地读取mnist数据集的方法。 数据集格式介绍 这部分内容网络上很常见,这里还是简明介绍一下。网络上下载的...
    99+
    2022-11-12
  • Python threading Local()函数用法案例详解
    目录前言local() 函数是什么?local()函数如何用?1. 不做标记,不做隔离2.使用local()函数加以控制3. 模拟实现local()的功能,创建一个箱子4. 简化代码...
    99+
    2022-11-12
  • python使用XPath解析数据爬取起点小说网数据
    目录1. xpath 的介绍优点:安装lxml库XML的树形结构:选取节点的表达式举例:2. 爬取起点小说网在浏览器中获取书名和作者测试使用xpath获取起点小说网的数据1. xpa...
    99+
    2022-11-12
  • 【Python详解】Python类的详细定义与使用案例
    大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得10G学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群欢迎大家在CSDN后台私信我! 本文目...
    99+
    2023-09-04
    python python类 类的定义 python类的使用 python类的定义
  • 详解Python OpenCV数字识别案例
    目录前言一、案例介绍二、步骤1、模板读入,以及一些包的导入,函数定义等2、模板预处理,将模板数字分开,并排序3、输入图像预处理,将图像中的数字部分提取出来4、模板匹配总结前言 实践是检验真理的唯一标准。 因为觉得一板...
    99+
    2022-06-02
    python opencv opencv 数字识别
  • Python之基础函数案例详解
    函数就是把具有独立功能的代码块封装成一个小模块,可以直接调用,从而提高代码的编写效率以及重用性, 需要注意的是, 函数需要被调用才会执行, 而调用函数需要根据函数名调用 ...
    99+
    2022-11-12
  • CrashRpt使用案例详解
    CrashRpt介绍及简单应用 1、简介 CrashRpt是一个开源的第三方包,在程序出现未处理异常时,能够收集错误信息,并生成程序错误报告。CrashRpt可以将报告按照指定的方式...
    99+
    2022-11-12
  • Ajax responseText解析json数据案例详解
    解决ajax处理服务器端返回结果responseText中是JSON的数据。 第一,json格式的文件内容如下: { "city":"ShangHai", "...
    99+
    2022-11-12
  • Python中return用法案例详解
    python中return的用法 1、return语句就是把执行结果返回到调用的地方,并把程序的控制权一起返回 程序运行到所遇到的第一个return即返回(退出def块),不会再运行...
    99+
    2022-11-12
  • Python中使用Frozenset对象的案例详解
    目录关于Frozensets创建一个新的Frozenset对象一旦创建了Frozenset,你就不能修改它了与 Frozensets 一起使用的方法Frozenset可以被转换为其他...
    99+
    2022-11-11
  • Vue之使用mockjs生成模拟数据案例详解
    目录在项目中安装mockjs在Vue项目中使用mockjs的基本流程Mock语法规范数据模板定义规范(Data Template Definition,DTD)数据占位符定义规范(D...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作