python笔记27-lxml.etree解析html

前言

之前分享过一个python爬虫beautifulsoup框架可以解析html页面,最近看到lxml框架的语法更简洁,学过xpath定位的,可以立马上手。

使用环境:

python 3.6

lxml 4.2.4

lxml安装

使用pip安装lxml库

$ pip install lxml

pip show lxml查看版本号

$ pip show lxml

html解析

这里用到etree.HTML方法把html的文本内容解析成html对象

要打印html内容,可以用etree.tostring方法,encoding=”utf-8”参数可以正常输出html里面的中文内容。pretty_print=True是以标准格式输出

运行结果

soupparser解析器

soupparser解析器比上面的etree.HTML容错性要好一点,因为其处理不规范的html的能力比etree强太多。

xpath使用案例

使用htnl解析器,最终是想获取html上的某些元素属性和text文本内容,接下来看下,用最少的代码,简单高效的找出想要的内容。

比如要获取“这里是我的微信公众号:yoyoketang”

运行结果:

这里是我的微信公众号:yoyoketang

从代码量上看,简单的三行代码就能找到想要的内容了,比之前的beautifulsoup框架要简单高效的多

nodes是xpath定位获取到的一个list对象,会找出所有符合条件的元素对象。可以用for 循环查看详情

运行结果

二次查找

通过xpath定位语法//p[@class=”yoyo”]定位到的是class=”yoyo”这个元素以及它的所有子节点,如果想定位其中一个子节点,可以二次定位,继续xpath查找,如获取:python笔记

运行结果

python笔记

《python3自动化接口+selenium》10月07号开学!(包教会)

主讲老师:上海-悠悠

上课方式:QQ群视频在线教学

报名费2000一人(周期2个月)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180918G0P27J00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券