学习笔记


lxml模块

  • 关于lxml

lxml解析模块可以利用Xpath表达式来匹配HTML字符串的内容。

  • 关于lxml解析库的安装

进入cmd,输入以下代码,即可安装:

pip install lxml
  • 语法
from lxml import etree#创建解析对象
parse_html = etree.HTML(html)
#html = requests.get(url, headers = headers).content.decode('utf-8')
#解析对象调用xpath
r_list = parse_html.xpath('xpath表达式')
#只要调用xpath,返回的结果一定为列表
  • 举个例子

针对下面HTML文档,我们利用Xpath获取所有li节点对象、所有name节点的class属性值、所有food节点里的文本内容:

 <ol><li class="Ra01"><name class = 'Bunny01'>小黄</name><age>8</age><food>胡萝卜</food></li><li class="Ra01"><name class = 'Bunny02'>大白</name><age>9</age><food>白菜</food></li><li class="Ra02"><name class = 'Bunny03'>奥尼尔</name><age>20</age><food>提草</food></li><li class="Ra03"><name class = 'Bunny03'>王子</name><age>30</age><food>进口提草</food></li></ol>

代码:

# -*- coding: utf-8 -*-from lxml import etreehtml = \
"""<ol><li class="Ra01"><name class = 'Bunny01'>小黄</name><age>8</age><food>胡萝卜</food></li><li class="Ra01"><name class = 'Bunny02'>大白</name><age>9</age><food>白菜</food></li><li class="Ra02"><name class = 'Bunny03'>奥尼尔</name><age>20</age><food>提草</food></li><li class="Ra03"><name class = 'Bunny03'>王子</name><age>30</age><food>进口提草</food></li></ol>
"""parse_html = etree.HTML(html)
#获取所有li节点对象
li_list = parse_html.xpath('//ol/li')
print(li_list)
print('-'*20)#获取所有name节点的class属性值
name_list = parse_html.xpath('//ol/li/name/@class')
print(name_list)
print('-'*20)#获取所有food节点里的文本内容
food_list = parse_html.xpath('//ol/li/food/text()')
print(food_list)

控制台输出结果:

[<Element li at 0xad2d7371c8>, <Element li at 0xad2d737448>, <Element li at 0xad2d737288>, <Element li at 0xad2d737488>]
--------------------
['Bunny01', 'Bunny02', 'Bunny03', 'Bunny03']
--------------------
['胡萝卜', '白菜', '提草', '进口提草']

利用python爬虫(part5)--lxml模块相关推荐

  1. 利用python爬虫(part13)--requests模块之requests.get的参数们

    学习笔记 requests.get()方法的参数们 查询参数params 语法 params = {'查询参数':'查询参数值'} res = requests.get(base_url,params ...

  2. 利用python爬虫(part4)--requests模块之requests.get方法

    学习笔记 文章目录 requests模块 requests常用方法 requests.get() requests模块 关于requests模块的安装 进入cmd,输入以下代码,即可安装: pip i ...

  3. Python数据提取-lxml模块

    更多python教程请到友情连接: 菜鸟教程https://www.piaodoo.com 初中毕业读什么技校 http://cntkd.net 茂名一技http://www.enechn.com p ...

  4. 小游戏,利用Python爬虫之制作诗歌接龙

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:数据森麟 ( 想要学习Python?Python学习交 ...

  5. python爬虫系列--lxml(etree/parse/xpath)的使用

    lxml:python 的HTML/XML的解析器 官网文档:https://lxml.de/ 使用前,需要安装安 lxml 包 功能: 1.解析HTML:使用 etree.HTML(text) 将字 ...

  6. python爬虫之bs4模块(超详细)

    python爬虫之bs4模块(超详细) 一.bs4简介 二.使用方法 三.BeautifulSoup四大对象种类 (1)tag (2)NavigableString (3)BeautifulSoup ...

  7. 爬虫之 lxml模块的安装与使用示例

    爬虫之 lxml模块的安装与使用示例 lxml模块是一个第三方模块,安装之后使用 1.1 lxml模块的安装 对发送请求获取的xml或html形式的响应内容进行提取 pip/pip3 install ...

  8. 爬虫之 lxml模块和xpath语法

    爬虫之 lxml模块和xpath语法 对html或xml形式的文本提取特定的内容,就需要我们掌握lxml模块的使用和xpath语法. lxml模块可以利用XPath规则语法,来快速的定位HTML\XM ...

  9. 利用python爬虫与数据分析,打造最强玩法,轻松成为大神级玩家!

    前言: 最近迷上了一款游戏,但是作为一名程序员的我是不可能只玩游戏的,我必须把它的官网数据采集下来! 环境: windows python3.6.5 模块: requests jsonpath pyg ...

最新文章

  1. 你会不会模拟超过 5 万用户的并发访问?
  2. C#中调用python方法
  3. 分库分表需要考虑的问题及方案
  4. VS报错:此项目需要缓解Spectre漏洞的库
  5. 通过HTTP协议实现多线程下载
  6. 多晶硅价格已处于阶段性高点
  7. 【各种信噪比联系与区别详解】实信号、复信号Es、N0、符号信噪比EsN0、带内信噪比、比特信噪比EbN0、SNR的含义及关系详解
  8. 电脑公司win11旗舰版32位镜像v2021.07
  9. delphi测试服务器响应时间,负载测试中的页面响应时间 - Visual Studio (Windows) | Microsoft Docs...
  10. B站升级HDR10真彩画质,开启4K+120帧+HDR创作新时代
  11. Python使用管道实现进程间数据传递
  12. PAT甲级1004 (DFS,树的父子节点)
  13. RDP Wrapper 大于10.0.19041
  14. layui form表单提php验证,layui表单验证介绍
  15. 显卡性能测试软件的是,显卡性能测试软件
  16. linux的XDG(X Desktop Group)基本目录规范
  17. 清远机器人编程_清远宇舵机器人告诉你为什么少年儿童要学习机器人编程?
  18. install package vif包_每天学点之CentOS软件源码包安装
  19. php博客视频教程,ThinkPHP5 博客项目实战视频教程
  20. 大三、大四期间去实习,要不要签三方协议?

热门文章

  1. OpenGL:画三角形程序详解笔记
  2. 深度学习(三十五)——Style Transfer(2), YOLOv3, Tiny-YOLO, One-stage vs. Two-stage
  3. xampp index.php报错,XAMPP配置出现403错误“Access forbidden!”的解决办法
  4. icd植入是大手术吗_白内障手术为何要植入人工晶体?便宜的人工晶体会影响视力吗?...
  5. python 使用文本注解绘制树节点_实用篇 | 34 个最火的 Python 开源框架
  6. 方法的反射---反射学习笔记(二)
  7. ES6-note-Set和Map(草稿)
  8. 2019.3.18 区块链论文翻译
  9. mysql 基本操作
  10. #11 硬连接与软链接与RAID与LVM2