爬虫【7】 xpath解析

数据解析之Xpath解析(超详细定位) XPath(XML Path Language)是一种XML的查询语言,他能在XML树状结构中寻找节点。XPath 用于在 XML 文档中通过元素和属性进行导航xml是一种标记语法的文本格式,xpath可以方便的定位xml中的元素和其中的属性值。lxml是python中的一个第三方模块,它包含了将html文本转成xml对象,和对对象执行xpath的功能表达式说明举例从根节点开始选取//从任意节点开始选取//input选取当前节点..选取当前节点的父节点//input/.. 阅读详情

爬虫【7】 xpath解析

爬虫回顾:

Xpath解析

定义

XPath即为XML路径语言,它是一种用来确定XML文档中某部分位置的语言,同样适用于HTML文档的检索
匹配演示:

<ul class="CarList">
	<li class="bjd" id="car_001" href="http://www.bjd.com/">
        <p class="name">布加迪</p>
        <p class="model">威航</p>
        <p class="price">2500万</p>
        <p class="color">红色</p>
    </li>
    
    <li class="byd" id="car_002" href="http://www.byd.com/">
        <p class="name">比亚迪</p>
        <p class="model">秦</p>
        <p class="price">15万</p>
        <p class="color">白色</p>
    </li>
</ul>
1、查找所有的li节点
  //li
2、获取所有汽车的名称: 所有li节点下的子节点p的值 (class属性值为name)
  //li/p[@class="name"]  
3、找比亚迪车的信息: 获取ul节点下第2个li节点的汽车信息
  //ul/li[2]                          
4、获取所有汽车的链接: ul节点下所有li子节点的href属性的值
  //ul/li/@href

# 只要涉及到条件,加 []
# 只要获取属性值,加 @

匹配多路径(或)

xpath表达式1 | xpath表达式2 | xpath表达式3

常用函数

1、contains() :匹配属性值中包含某些字符串节点
   # 查找id属性值中包含字符串 "car_" 的 li 节点
   //li[contains(@id,'car_')]
2、text() :获取节点的文本内容
   # 查找所有汽车的价格
    //li/p[@class='price']

lxml解析库

安装

pip3 install lxml == 3.7.2

使用流程

1、导模块
   from lxml import etree
2、创建解析对象
   parse_html = etree.HTML(html)
3、解析对象调用xpath
   r_list = parse_html.xpath('xpath表达式')

导 ==》 创 ==》 解

解析html样本事例

<div class="wrapper">
	<a href="/" id="channel">新浪社会</a>
	<ul id="nav">
		<li><a href="http://domestic.sina.com/" title="国内">国内</a></li>
		<li><a href="http://world.sina.com/" title="国际">国际</a></li>
		<li><a href="http://mil.sina.com/" title="军事">军事</a></li>
		<li><a href="http://photo.sina.com/" title="图片">图片</a></li>
		<li><a href="http://society.sina.com/" title="社会">社会</a></li>
		<li><a href="http://ent.sina.com/" title="娱乐">娱乐</a></li>
		<li><a href="http://tech.sina.com/" title="科技">科技</a></li>
		<li><a href="http://sports.sina.com/" title="体育">体育</a></li>
		<li><a href="http://finance.sina.com/" title="财经">财经</a></li>
		<li><a href="http://auto.sina.com/" title="汽车">汽车</a></li>
	</ul>
</div>
接下来分别完成:
1. 提取所有的href的属性值
2. 提取所有href的值,不包括 / 
3. 获取 图片、军事、...,不包括新浪社会
"""
lxml
"""
from lxml import etree

html = """
<div class="wrapper">
	<a href="/" id="channel">新浪社会</a>
	<ul id="nav">
		<li><a href="http://domestic.sina.com/" title="国内">国内</a></li>
		<li><a href="http://world.sina.com/" title="国际">国际</a></li>
		<li><a href="http://mil.sina.com/" title="军事">军事</a></li>
		<li><a href="http://photo.sina.com/" title="图片">图片</a></li>
		<li><a href="http://society.sina.com/" title="社会">社会</a></li>
		<li><a href="http://ent.sina.com/" title="娱乐">娱乐</a></li>
		<li><a href="http://tech.sina.com/" title="科技">科技</a></li>
		<li><a href="http://sports.sina.com/" title="体育">体育</a></li>
		<li><a href="http://finance.sina.com/" title="财经">财经</a></li>
		<li><a href="http://auto.sina.com/" title="汽车">汽车</a></li>
	</ul>
</div>
"""

parse_html = etree.HTML(html)
all_href = parse_html.xpath('//a/@href')
print(all_href)
some_href = parse_html.xpath('//a[@href!="/"]/@href')
print(some_href)
some_text = parse_html.xpath('//a[text()!="新浪社会"]/text()')
print(some_text)



SAP FICO CK40N批量发布标准价:常见报错排查与实战解决指南 本文详细解析了SAP FICO模块中CK40N批量发布标准价的常见报错及解决方案。从物料选择、成本核算到最终发布的全流程,提供了针对'已有标准成本估算记号'等典型报错的实战处理技巧,并分享了预防性维护与批量处理的高效方法,帮助财务人员提升工作效率。 阅读详情

相关推荐

信号完整性入门:为什么工程师总爱用dB来描述衰减?

本文深入探讨了信号完整性分析中工程师偏爱使用dB(分贝)单位描述衰减的原因。dB通过对数转换,将大动态范围的乘除关系简化为加减运算,极大地方便了多级系统分析和链路预算计算。文章重点解释了-3dB点的核心意义,即功率衰减一半的临界状态,并阐述了其在评估信道带宽、插入损耗与回波损耗等关键参数中的实际应用,是高效工程思维和沟通的重要工具。

weixin_29263201的博客 387

python数据解析之XPath

XPath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。 xpath是最常用且最便捷高效的一种解析方式,通用型强,其不仅可以用于python语言中,还可以用于其他语言中,数据解析建议首先xpath。 XPath使用方法 xpath解析原理: 实例化一个etree的对象,且需要将被解析的页面源代码数据加载到该对象中 调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获 安装lxml pip i

渗透之路,攻防之间皆学问 3430

头歌MySQL数据库实训答案 有目录

头歌java实训答案集数据库部分一条一条的写,可鼠标手动粘贴,除特定命令外未分大小写。 第1关:创建数据库 第2关创建表 第3关:使用主键约束 第4关:外键约束 第5关:添加常用约束 MySQL数据库 - 数据库和表的基本操作(一) 第1关:查看表结构与修改表名 第2关:修改字段名与字段数据类型 第3关:添加与删除字段 第4关:修改字段的排列位置 第5关:删除表的外键约束 MySQL数据库 - 数据库和表的基本操作(二) 第1关:插入数据 第2关:更新数据 第3关:删除数据 MySQL数据库 - 单表查询(

m0_67401761的博客 4万+

5.网络爬虫——Xpath解析

Xpath简介 XPath是一种用于在XML文档中定位节点的语言,它可以用于从XML文档中提取数据,以及在XML文档中进行搜索和过滤操作。它是W3C标准的一部分,被广泛应用于XML文档的处理和分析。 XPath使用路径表达式来描述节点的位置,这些路径表达式类似于文件系统中的路径。路径表达式由一个或多个步骤(step)组成,每个步骤描述了一个节点或一组节点。步骤可以使用关系运算符(如/和//)来连接,以便描述更复杂的节点位置。 XPath还提供了一些内置函数和运算符,可以对XML文档中的数据进行操作和计算

weixin_50804299的博客 2万+

操作系统期末大题类型题解

额,OS主要这回考程序分析题,PV操作、生产者消费者啊,哲学家进餐问题,死锁问题啊,如何避免死锁,经典银行家算法,页面置换算法啥的,磁盘调度......总计还有很多,就不一一说了 PV操作 谈到PV操作,首先要了解什么是信号量,其实就是用来解决互斥与同步问题的,分为原语wait(S)和signal(S),也就是我们常说的PV操作,在这里给出王道上的概念 wait(S){ while(S>0) S=S-1; } signal(S){ S=S+1; } 记录型信号量

ZXxxiaoxuan的博客 795

【2023】Java利用modbus4j实现工业设备Modbus TCP数据采集与解析

本文详细介绍了在2023年使用Java和modbus4j库实现工业设备Modbus TCP数据采集与解析的完整实践。内容涵盖开发环境搭建、TCP连接建立、开关量与模拟量数据的读取与解析、批量读取性能优化、控制指令写入以及常见错误排查指南,为开发者构建稳定高效的工业物联网数据采集系统提供全面指导。

rose2的博客 723

python爬虫之xpath解析(附实战)

xpath是学爬虫的必备工具,其选择功能十分强大,它提供了非常简明的路径选择表达式,另外,它还提供了超过100个内建函数,用于字符串、数值、时间的匹配以及节点、序列的处理等,几乎所有我们想要定位的节点,都可以用XPath来选择。 当然我也是小白,可能写的不对或者不足还望指出,有不懂的可以直接评论或者私我。

小白不白 5万+

深入解析EtherCAT通讯DS402协议下的伺服电机控制模式选择与配置

本文深入解析了EtherCAT通讯DS402协议下的伺服电机控制模式选择与配置,详细介绍了六种核心控制模式(如PPM、CSP、CSV、CST)的应用场景及实战技巧。通过EtherCAT和DS402协议的高效配合,实现工业自动化中伺服电机的精准控制,提升设备性能与稳定性。

h0i1j2k3l的博客 1175

【Python_Xpath学习笔记(一)】 Xpath选择器基础用法介绍

此篇文章中介绍Xpath的定义和基本使用方法,特此记录用来加深印象,较为基础。

禾戊之昂的博客 2788

计算机组成原理(二)—— 数据的表示与运算

本章目录引言一、数制与编码1.1 进位计数制1.1.1 进制及转换1.1.2 真值、机器数1.2 BCD码1.3 ASCII 码1.4 校验码1.4.1 奇偶校验码1.4.2 海明码1.4.3 CRC循环冗余码二、定点数的表示和运算2.1 定点数的表示2.1.1 无符号2.1.2 有符号(原码、反码、补码、移码)2.2 定点数的运算2.2.1 移位运算2.2.2 加减运算(溢出判断)2.2.3 乘法运算2.2.4 除法运算2.3 强制类型转换2.4 数据的存储和排列三、浮点数的表示和运算3.1 浮点数的表示

S mile0804的博客 7476

如何通过conda安装HyPhy教程

本文介绍了在Ubuntu系统上通过conda安装分子进化分析工具HyPhy的详细步骤。首先创建conda环境并指定Python 3.8版本,然后通过bioconda通道安装HyPhy软件包。安装完成后可通过conda list命令验证安装。文中还特别指出可能遇到的libcrypto.so.1.1共享库缺失错误,并提供了解决方案的参考链接。该教程配有安装过程截图,帮助用户直观了解操作流程和验证安装结果。

猿小白的博客 8261

【爬虫入门练习日记7】xpath解析

根据不同形式的xpath表达式去定位到不同的标签,并且还可以将定位到标签当中的相关文本数据捕获。2.调用etree对象中的xpath方法结合xpath表达式实现标签的定位和内容捕获。1.实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象当中。xpath解析是最常用且最便捷高效的一种解析方式,而且通用性也较高。1.将本地的html文档中的源码数据加载到etree对象中。2.可以将从互联网上获取的源码数据加载到该对象当中。xpath('xpath表达式')只根据标签的层级关系进行定位。

weixin_50729902的博客 659

Explorer.exe系统错误,电脑重启后刚开始一段时间正常,过一会桌面任务栏就卡死,可以打开任务管理器

联想E14Win10专业版。

本博客,博文仅代表个人操作经验,不能完全解决你的问题,仅供参考,佛系回复。 8053

7.23之爬虫开发中的 Requests 高级用法与 XPath 解析技术

人话来说就是通过Xpath代码爬取网页里面我们想要的信息,比如小编这里就是爬取了星座运势,星座日期,星座运势;大家可以用来提取网页数据,比如球队信息,高考录取全部信息等等,这里不介绍,下面上干货在 Web 开发中,会话(Session)是维护用户状态的关键机制。服务器通过会话对象存储用户数据,以便在用户后续操作中提供个性化服务。Requests 库的 session 对象完美模拟了这一过程,能自动处理 Cookies,轻松实现会话保持。

2301_77510406的博客 2003

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

我要爬爬虫(7)-xpath解析库

&amp;lt;div&amp;gt; &amp;lt;ul&amp;gt; &amp;lt;li class =&quot;item-0&quot;&amp;gt;&amp;lt;a href=&quot;link1.html&quot;&amp;gt;first time&amp;lt;/a&amp;gt; &amp;lt;/li&amp;gt;

凤凰传奇的粉丝 361

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

网络爬虫练手项目:抓取浙江农信网站所有新闻

采用python2.7所写,主要是为了准备单位的网络爬虫方面的讲课,所写写了这个示例程序。全部代码如下: # coding:UTF-8 '''     运行即爬取浙江农信所有的新闻,保存文件名格式为:当前时间.news ,保存在脚本目录     使用python IDLE打开,运行即可 ''' from lxml import etree  # 导入xpath支持的包 import urllib...

figo8875的专栏 326

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

爬虫学习笔记(八)数据解析——xpath 2020.5.7

本节学习数据解析的xpath

闵行小鱼塘 559

day7 xpath解析和多线程(爬虫结束,剩下多加练习吧)

xpath解析和多线程

qq_59778168的博客 205

基于xpath,多线程,爬取豆瓣250电影的海报

完成过程准备阶段python 3.7编译环境操作过程通过requests获取网页源代码通过xpath对网页关键信息进行提取通过concurrent.futures模块增加多线程对比单线程和多线程的爬取耗时代码展示以及运算结果展示 准备阶段 python 3.7编译环境 操作过程 通过requests获取网页源代码 str_all="" i=0 while i<=9: url = "https://movie.douban.com/top250?start="+str(2

m0_46377561的博客 761

Python爬虫入门 | 爬取豆瓣电影信息

这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源。看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~ ps注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮答疑容易放弃。为此小编建了个Python全栈免费答疑.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,不懂的问题有...

Python678的博客 2054

python xpath循环_Python爬虫入门?2?爬取豆瓣电影信息

这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源。看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~好啦,正式开始我们的第二节课《爬取豆瓣电影信息》吧!啦啦哩啦啦,都看黑板~1. 爬虫原理1.1 爬虫基本原理听了那么多的爬虫,到底什么是爬虫?爬虫又是如何工作的呢?我们先从“爬虫原理”说起...

weixin_39886612的博客 869

python 抓取网页 库_python-爬虫-自带库抓取网页内容

python-爬虫-自带库抓取网页内容版本:Python 2.7.10python-爬虫-自带库抓取网页内容版本:Python 2.7.10# -*- coding: utf-8 -*-import sysimport lxmlimport requestsimport codecsimport timefrom lxml import etreefrom lxml.html.clean impo...

weixin_33160876的博客 197

python爬虫爬取豆瓣电影信息城市_Python爬虫入门 | 2 爬取豆瓣电影信息

这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源。看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~好啦,正式开始我们的第二节课《爬取豆瓣电影信息》吧!啦啦哩啦啦,都看黑板~1. 爬虫原理1.1 爬虫基本原理听了那么多的爬虫,到底什么是爬虫?爬虫又是如何工作的呢?我们先从“爬虫原理”说起...

weixin_39654465的博客 1752

XPath 节点

本文详细解析了XPath中的7种节点类型及其应用,重点介绍了元素、属性和文本节点这三种最常用的类型。通过HTML示例展示了节点树结构,并提供了常用XPath写法对照表,包括元素定位、属性提取和文本获取等实用技巧。特别推荐了爬虫必备的文本节点处理方法,如contains()和normalize-space()等函数的使用。文章强调XPath将文档视为节点树结构,掌握这些节点关系能有效提升定位能力。最后提供了一套节点练习题建议,帮助读者快速掌握复杂定位技巧。

m0_57545130的博客 434

Janus-Pro-7B赋能Python爬虫:智能解析与反反爬策略生成

本文介绍了如何利用星图GPU平台自动化部署Janus-Pro-7B镜像,以赋能Python爬虫开发。该平台简化了部署流程,用户可快速调用该模型实现智能网页结构解析与反反爬策略生成,例如自动生成健壮的XPath选择器以抓取电商商品信息,从而显著提升爬虫开发效率与稳定性。

weixin_42361478的博客 728

python网络爬虫系列教程——python中lxml库应用全解(xpath表达式)

全栈工程师开发手册 (作者:栾鹏) python教程全解 python网络爬虫lxml库的应用全解。在线安装方法:cmd中输入”pip install lxml”离线安装,下载lxml库点击下载python库的安装请参考Python库的安装与卸载路径选择表达式lxml库需要记住的主要是路径选择表达式。语法规则表达式 描述 nodename

5524
上一篇: 爬虫【6】链家二手房信息和图片并保存到本地
下一篇: 爬虫【8】request.get()参数详解
AndSonder
博客等级 码龄7年 364粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值