Python爬虫之xlml解析库(全面了解)
发布时间 - 2026-01-11 02:41:16 点击率:次1.Xpath

Xpath是一门在XML中查找信息的语言,可用来在XML文档中对元素和属性进行遍历。XQuery和xpoint都是构建于xpath表达之上
2.节点
父(parent),子(children),兄弟(sibling),先辈(ancetstor),后代(Decendant)
3.选取节点
路径表达式
| 表达式 | 描述 | 路径表达式 | 结果 |
| nodename | 选取此节点上的所有的子节点 | bookstore | 选取bookstore元素的所有子节点 |
| / | 从根节点上选取 | /bookstore | 选取根元素bookstore,为绝对路径 |
| // | 从匹配选择的当前节点选择文档中的节点,不考虑位置 | //book | 选取所有的book子元素,而不管他们在文档的位置 |
| . | 选取当前节点 | bookstore//book | 选择bookstore后代中所有的book元素 |
| .. | 选取当前节点的父节点 | ||
| @ | 选取属性 | //@lang | 选取名为lang的所有属性 |
谓语
谓语用来查找某个特定的节点或者包含某个指定的值的节点
谓语被嵌在方括号中
| 路径表达式 | 结果 |
| /bookstore/book[1] | 选取属于bookstore子元素的第一个book元素 |
| /bookstore/book[last()] | 选取属于bookstore子元素的最后book元素 |
| /bookstore/book[last()-1] | 选取属于bookstore子元素的倒数第二个book元素 |
| /bookstore/book[position()<3] | 选取最前面的两个属于bookstore元素的子元素的book元素 |
| //title[@lang='eng'] | 选取所有的title元素,并且这些元素拥有值为eng的lang属性 |
| /bookstore/book[price>35.0] | 选取bookstore元素的所有book元素,且其中的price值大于35.0 |
选取未知节点(通配符)
* 匹配任何 元素节点
@* 匹配任何属性节点
node() 匹配任何类型的节点
4.lxml用法
#!/usr/bin/python
#_*_coding:utf-8_*_
from lxml import etree
text='''
<div>
<ul>
<li class="item-0"><a href="link1.html" rel="external nofollow" 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>
</ul>
</div>
'''
# html=etree.HTML(text) #html对象,存储在地址中,有自动修正功能
# result=etree.tostring(html) #将html对象转化为字符串
html=etree.parse('hello.html')
# result=etree.tostring(html,pretty_print=True)
# print result
print type(html)
result= html.xpath('//li')
print result
print len(result)
print type(result)
print type(result[0])
print html.xpath('//li/@class') # 获取li标签下的所有的class
print html.xpath('//li/a[@href="link1.html" rel="external nofollow" rel="external nofollow" ]') #获取li标签下href为link1的<a>标签
print html.xpath('//li//span') #获取li标签下所有的span标签
print html.xpath('//li[last()-1]/a')[0].text #获取倒数第二个元素的内容
以上这篇Python爬虫之xlml解析库(全面了解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# python爬虫
# Python爬虫DNS解析缓存方法实例分析
# python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
# Python使用Mechanize模块编写爬虫的要点解析
# Python开发实例分享bt种子爬虫程序和种子解析
# Python爬虫的两套解析方法和四种爬虫实现过程
# 第二个
# 给大家
# 文档
# 都是
# 第一个
# 遍历
# 希望能
# 这篇
# 转化为
# 中对
# 小编
# 值为
# 最前面
# 大家多多
# 是一门
# book
# tr
# tbody
# border
# bookstore
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
在线制作视频网站免费,都有哪些好的动漫网站?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
C语言设计一个闪闪的圣诞树
android nfc常用标签读取总结
魔方云NAT建站如何实现端口转发?
javascript读取文本节点方法小结
网站制作免费,什么网站能看正片电影?
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
,交易猫的商品怎么发布到网站上去?
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
如何在橙子建站上传落地页?操作指南详解
深圳网站制作的公司有哪些,dido官方网站?
Laravel安装步骤详细教程_Laravel环境搭建指南
简历没回改:利用AI润色让你的文字更专业
Laravel如何使用Livewire构建动态组件?(入门代码)
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
php485函数参数是什么意思_php485各参数详细说明【介绍】
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
活动邀请函制作网站有哪些,活动邀请函文案?
韩国服务器如何优化跨境访问实现高效连接?
java获取注册ip实例
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
如何快速搭建支持数据库操作的智能建站平台?
实例解析Array和String方法
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
网站页面设计需要考虑到这些问题
Laravel用户密码怎么加密_Laravel Hash门面使用教程
Python文件操作最佳实践_稳定性说明【指导】
如何用JavaScript实现文本编辑器_光标和选区怎么处理
如何快速重置建站主机并恢复默认配置?
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
Laravel中的Facade(门面)到底是什么原理
如何在Windows 2008云服务器安全搭建网站?
如何快速搭建个人网站并优化SEO?
JavaScript如何操作视频_媒体API怎么控制播放
JavaScript如何实现倒计时_时间函数如何精确控制
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
php结合redis实现高并发下的抢购、秒杀功能的实例

