赞
踩
1、lxml介绍
lxml是一个HTML/XML的解析器,主要的功能是如何解析和提取HTML/XML数据。
2、lxml解析HTML代码:
可以用来解析HTML代码,并且在解析HTML代码的时候,如果代码不规范,会自动进行补全。
- #导入包
- form lxml import etree
- text='''<div>
- <ul>
- <li class="item-0"><a href="link1.html">first item</a></li>
- <li class="item-1"><a href="link2.html">second item</a></li>
- <li class="item-inactive"><a href="link3.html">third item</a></li>
- <li class="item-1"><a href="link4.html">fourth item</a></li>
- <li class="item-0"><a href="link5.html">fifth item</a> # 注意,此处缺少一个 </li> 闭合标签
- </ul>
- </div>
- '''
- #利用etree.HTML将字符串解析为HTML文档
- html=etree.HTML(text)
- result=etree.tostring(html)#将字符串序列化为HTML文档
3、html文件读取
- #从文件中读取html代码:利用etree.parse()方法
- from lxml import etree
- html=etree.parse('xx.html')#读取外部文件xx.html
- result=etree.tostring(html,pretty_print=True)
- print(result)
4、在lxml中使用xpath语法:
4.1获取所有li标签
- from lxml import etree
- text='''<div>
- <ul>
- <li class="item-0"><a href="link1.html">first item</a></li>
- <li class="item-1"><a href="link2.html">second item</a></li>
- <li class="item-inactive"><a href="link3.html"><span class="bold">third item</span></a></li>
- <li class="item-1"><a href="link4.html">fourth item</a></li>
- <li class="item-0"><a href="link5.html">fifth item</a></li>
- </ul>
- </div>
- '''
- html=etree.HTML(text)
- lis=html.xpath("//li")
- print(lis)
4.2获取所有li元素下的所有class属性的值
result=html.xpath("//li/@class")
4.3获取li标签下href为www.baidu.com的a标签:
result=html.xpath("//li/a[@href='www.baidu.com']")
4.4获取li标签下所有span标签:
result=html.xpath("//li/span")
4.5获取li标签下的a标签里的所有class:
result=html.xpath("//li/a//@class")
4.6获取最后一个li 的a的href属性对应的值:
result=html.xpath("//li[last()]/a/@href")
4.7获取倒数第二个li元素的内容
- 第一种方法:result=html.xpath("//li[last()-1]/a")
- 第二种方法:result=html.xpath("//li[last()-1]/a/text()")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。