python中split使用方法(python lxml中etree的简单应用)
python中split使用方法
python lxml中etree的简单应用我一般都是通过xpath解析dom树的时候会使用lxml的etree,可以很方便的从html源码中得到自己想要的内容。
这里主要介绍一下我常用到的两个方法,分别是etree.html()和etree.tostrint()。
1.etree.html()
etree.html()可以用来解析字符串格式的html文档对象,将传进去的字符串转变成_element对象。作为_element对象,可以方便的使用getparent()、remove()、xpath()等方法。
如果想通过xpath获取html源码中的内容,就要先将html源码转换成_element对象,然后再使用xpath()方法进行解析。例如,这里有一段最简单的html源码:"<html><body><h1>this is a test</h1></body></html>",现在想要得到h1标签中的文本,可以这样实现:
|
# encoding=utf8 from lxml import etree html = '<html><body><h1>this is a test</h1></body></html>' # 将html转换成_element对象 _element = etree.html(html) # 通过xpath表达式获取h1标签中的文本 text = _element.xpath( '//h1/text()' ) print 'result is: ' , text |
结果:
result is: ['this is a test']
通过结果可以知道,xpath()方法放回的结果是一个列表,所以通常在取xpath()方法结果的时候,只取列表中的第一个元素。
2.etree.tostring()
etree.tostring()方法用来将_element对象转换成字符串。一般通过简单的xpath表达式无法得到想要的内容的时候我就会用该方法。例如,将上面的html小改动一下:"<html><body><h1>this <a>is a </a>test</h1></body></html>",这时候如果想要得到h1中的文本该怎么办呢?使用“//h1/text()”试试(将上面的html保存并用火狐浏览器打开,然后在firepath中输入该xpath表达式):
通过截图左下角的提示可以知道,使用xpath表达式“//h1/text()”只能得到h1标签中文本的“this”和“test”,用代码实现看看:
|
# encoding=utf8 from lxml import etree html = '<html><body><h1>this <a>is a </a>test</h1></body></html>' _element = etree.html(html) text = _element.xpath( '//h1/text()' ) print 'result is: ' , text |
运行结果:
result is: ['this ', 'test']
确实,使用xpath()方法,只能得到h1中部分文本内容,我们再试试使用“//h1//text()”看看:
然后通过代码实现看看:
|
# encoding=utf8 from lxml import etree html = '<html><body><h1>this <a>is a </a>test</h1></body></html>' _element = etree.html(html) text = _element.xpath( '//h1//text()' ) print 'result is: ' , text |
运行结果:
result is: ['this ', 'is a ', 'test']
通过“//h1//text()”表达式确实可以得到想要的内容,但是得到的是一个列表,还需要将列表中的所有元素“拼”起来才行,是不是有点麻烦。这时候,就可以考虑使用etree.tostring()方法了,etree.tostring()方法可以传递多个参数,包括element_or_tree、encoding、method等,其中method参数为text的时候,表示返回_element对象中的所有文本,所以可以这样:
|
# encoding=utf8 from lxml import etree html = '<html><body><h1>this <a>is a </a>test</h1></body></html>' _element = etree.html(html) # 先找到h1对象,然后通过etree.tostring方法找到h1对象中的所有文本 _h = _element.xpath( '//h1' ) # 注意,xpath方法返回的是一个列表,我们需要的是列表中的第一个元素:代表h1标签的_element对象 result = etree.tostring(_h[ 0 ], method = 'text' ) print 'result is: ' , result |
运行结果:
result is: this is a test
这时候使用etree.tostring()方法是不是很容易的就解决问题了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/u012067766/article/details/79903455
- python零基础入门加密与解密(Python玩转加密的技巧推荐)
- python 模块详解(举例讲解Python常用模块)
- 如何用python做一个弹窗(python实现弹窗祝福效果)
- 如何使用github中的python库(使用GitHub和Python实现持续部署的方法)
- python转pdf教程(Python实现将HTML转成PDF的方法分析)
- python统计字符类型和数量(python统计中文字符数量的两种方法)
- python怎么安装queue(python队列Queue的详解)
- python能把时间转化成毫秒级吗(python 获取毫秒数,计算调用时长的方法)
- python怎么抽取微信图片(Python 一键制作微信好友图片墙的方法)
- 100道python真实面试题附答案(值得收藏的10道python 面试题)
- 用python图片转字符串(python实现图片转字符小工具)
- python3下urllib案例(URL Rewrite Module 2.1 URL重写模块规则写法)
- python如何将xls转成xlsx(Python这样操作能存储100多万行的xlsx文件)
- python操作pandas(详解Python学习之安装pandas)
- python中test函数用法(Python TestCase中的断言方法介绍)
- python 提取微信消息(python实现文件助手中查看微信撤回消息)
- 萌娃唱《白龙马》走红,那生动的小表情,网友直呼 简直是戏精(萌娃唱白龙马走红)
- 朱鹤松被不断认可,凤凰传奇玲花喊话岳云鹏,索要老朱演出门票(朱鹤松被不断认可)
- 元宵晚会槽点多,芒果台上来就假唱,岳云鹏不说相声改评书了(元宵晚会槽点多)
- 岳云鹏跟凤凰传奇谈心,说出了人生中最重要的三个人,这才成功(岳云鹏跟凤凰传奇谈心)
- 爱情可以当饭吃吗(爱情能当饭吃吗)
- Top 3 JSHS《运动与健康科学 英文 》跻身SCI体育学期刊世界前三(Top3JSHS运动与健康科学)
热门推荐
- css中设置flex布局浮动是否会生效(深入理解CSS系列之flex兼容)
- php的数据类型约束的好处(PHP中的Iterator迭代对象属性详解)
- laravel服务器设置(基于Laravel-admin 后台的自定义页面用法详解)
- filezilla如何连接远程服务器(使用FileZilla快速搭建FTP文件服务的图文教程)
- 让服务器iis支持.apk文件下载的设置方法(让服务器iis支持.apk文件下载的设置方法)
- 织梦自定义属性设置(织梦 DeDeCMS 添加自定义属性的方法图文教程)
- flask项目微信小程序(Python Flask 搭建微信小程序后台详解)
- php目录函数创建教程(PHP下载文件函数与用法示例)
- docker配置说明(Docker安装Kong API Gateway并使用的详细教程)
- 微信小程序canvas缩放(微信小程序之html5 canvas绘图并保存到系统相册)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9