Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0523
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
本教程同步发布在:
个人网站: `https://oeasy.org`
蓝桥云课: `https://www.lanqiao.cn/courses/3584`
GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
Gitee: `https://gitee.com/overmind1980/oeasypython`
---- 上次了解了 html 中的 dom 树
- dom树 是 由节点元素组成的
- html 里面包括子节元素点
- head
- body
- requests 得到的是 字节序列
- 全都 连在一起
- 怎么他 变成 一棵树
- 好来 摘取 需要的元素呢 ??🤔
- 把 字节序列 变成 一棵dom树
- 这个术语 叫
解析HTML
- 这个术语 叫
- 我们选择后者
- 效率高
- 速度快
- 这是目前分析 html 最好的包
- lxml
- 是第三方的包
- 哪里查询帮助呢?
- 和ai打听 lxml
- lxml是一个开源的项目
- http://lxml.de
- github 的地址也指向这里
- lxml 是 处理 xml 的 liberay
- l 的意思是 library
- xml 的意思就是 e
xtensiblemarkuplanguage
- http://lxml.de
- 用 c 语言写了
- 高效的 libxml2 和 libxslt 两个类库
- 并封装成的 api
- 使用 python语法 调用
- 生成著名的 ElementTree
- 他可以解析 xml
- 也可以解析 html
- 毕竟都是 ml(Markup Language)
- 树型结构
- 本想 读取网页
- 然后再生成树
- 目前看起来
- 要 先用代码 直接生成树
- 然后 再 处理这棵树
- 树 先得 扎根
- etree 的意思是
- element tree
- 元素树
- 元素树树是
- 由元素节点构成的
- 哪个元素
- 是整棵树的根呢?
- 获得节点的方式是
- etree.Element("html")
- 我们知道 html 元素
- 是网页文档的根
- 所有其他元素的根
- 也是 从无到有生成这棵树的根
from lxml import etree
et_html = etree.Element("html")
print("et_html", et_html)
print("et_html.tag", et_html.tag)
-
变量名是 et_html
- et 代表他是 element_tree节点 类型的
- html 代表他是 html 根节点
-
运行结果
- 先把 根扎下之后
- 需要 开枝散叶
- 再来个 body
et_body = etree.Element("body")
print("et_body:", et_body)
- 这次有了两个节点
- et_html
- et_body
- 但是 html节点 和 body节点
- 怎么 建立 关系 呢??
et_html.append(et_body)
- html 节点下
- append body节点
- 父子关系由 append 函数确定
- 可以为 html 元素节点
- 追加 (append)
- body 子节点
- 在html元素节点上
- 附加(append)了body元素
- 作为 子节点
- 调用函数的
- 是 html 元素节点
- 是父亲
- 被调用的
- 是 body 元素节点
- 是儿子
- 所以主动调用的意义
- 是多么的重要啊!
- 这样两个节点就建立了父子关系
- 可以 看到 这父子关系 吗?
- 这次了解了
- 从 字节序列 到 元素树
- 需要解析
- 最好 的html解析工具 是
- lxml
- html 是 body 的 爸爸
- 如何看到 这
父子关系呢?🤔
- 如何看到 这
- 下次再说👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。











