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实现二叉树的常见遍历操作总结7种方法)
- python中字符串常用函数或方法(Python3.5字符串常用操作实例详解)
- python转pdf教程(Python实现将HTML转成PDF的方法分析)
- python程序锁教程(在python里协程使用同步锁Lock的实例)
- pythonlambda是什么函数(Python之lambda匿名函数及map和filter的用法)
- python绘折线图数据(python2.7使用plotly绘制本地散点图和折线图)
- python函数调用传递数组数据(python调用c++传递数组的实例)
- python3有哪些内置模块(Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析)
- pythonselenium查看当前页面元素(python+selenium 定位到元素,无法点击的解决方法)
- pythonflask系列教程(Python安装Flask环境及简单应用示例)
- python语法规则讲解(计算机二级python学习教程2 python语言基本语法元素)
- python数据存取(python异步存储数据详解)
- python栈和队列(Python 实现数据结构中的栈队列)
- python数据分析pandas教程(11个Python Pandas小技巧让你的工作更高效附代码实例)
- 用python编写一个gui(用 Python 构建漂亮的 GUI)
- 利用python合并pdf(Python合并同一个文件夹下所有PDF文件的方法)
- 有种尴尬叫朋友圈忘屏蔽,大学生上演社死现场,父母亲自下场吐槽(有种尴尬叫朋友圈忘屏蔽)
- 朋友圈屏蔽你的人,可以直接看淡了(朋友圈屏蔽你的人)
- 金球奖只青睐那些会戴珠宝的女人(金球奖只青睐那些会戴珠宝的女人)
- 浙江省一个县,人口超40万,建县历史超1100年(浙江省一个县人口超40万)
- 五代十国南唐历代国君(五代十国南唐历代国君)
- 飞机引进工程师杨隆 匠人匠心,只争朝夕(飞机引进工程师杨隆)
热门推荐
- mysql并发控制的重要方式(Mysql服务添加 iptables防火墙策略的方案)
- 如何提高nginx性能(提升Nginx性能的一些建议)
- mysql百万数据分页查询优化方案(MySQL单表亿级数据分页怎么优化?)
- linux如何进入makefile(linux中无make命令的问题make: *** 没有指明目标并且找不到 makefile及make命令安装方)
- vue 表格数据增加修改(vue element实现表格增加删除修改数据)
- 安装mysql中要注意什么问题(安装Mysql时可能会遇到的一些疑难杂症)
- mysql8.0使用(MySQL 8.0新特性 — 检查性约束的使用简介)
- sublime text常用插件
- dedecms系统参数设置(织梦dedecms首页调用指定栏目内容的标签详解)
- filezillaserver怎么配置(解决FileZilla_Server:425 Can't open data connection 问题详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9