gpt4 book ai didi

python数据解析之XPath详解

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 32 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python数据解析之XPath详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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 etreetree = 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'              <li><a href='http://ws.com'              <li><a href='http://xzc.com'          </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值解析出来就行 。

python数据解析之XPath详解

思路 。

  • 获取房源名称所在的url,并获取其响应数据
  • 数据解析,构造xpath表达式。提取目标数据
import requestsfrom lxml import etreeurl = "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详解

  。

总结

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

原文链接:https://blog.csdn.net/qq_44159028/article/details/120527437 。

最后此篇关于python数据解析之XPath详解的文章就讲到这里了,如果你想了解更多关于python数据解析之XPath详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com