lxml模块

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()")

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值