Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0528
- 这是 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`
----
上次了解了
- 深度优先遍历函数
- iter()
-
iter()
- 是迭代器函数
- 可以
筛元素 - 深度优先遍历
怎么把etree上的文本都输出来着?🤔
- 输出网页纯文本
from lxml import etree
et_html = etree.Element ("html" )
etree.SubElement(et_html, "head" )
etree.SubElement(et_html[0], "title").text = "oeasy"
etree.SubElement(et_html, "body").text = "o2z"
etree.SubElement(et_html[1], "h1").text = "o3z"
et_html[1][0].tail = "o4z"
print(etree.tostring(et_html,method="text").decode())
- 输出结果
- 除了method 之外
- tostring 还有啥参数?
- 对着 tostring 喊救命(help)
help(etree.tostring)
- 观察参数
- 可以在 tostring 函数中
- 用 with_tail=False 参数控制 tail 成员不显示
print(etree.tostring(et_html[1][0],method="text").decode())
print(etree.tostring(et_html[1][0],method="text",with_tail=False).decode())
- 对比
- 确实把tail省略了
- html元素
- 有属性 lang
- 值 为 zh-cn
- 这 属性 是
咋生成的 呢?
et_html.
- 按下Tab进行提示
- 这属性看起来像什么?
help(et_html.attrib)
- 这个attrib 说是 很像字典
- 我们就把attrib当成字典
- 将lang
- 这个key的value
- 设置为zh_Hans
et_html.attrib["lang"] = "zh_Hans"
print(etree.tostring(et_html,pretty_print=True).decode())
- attrib成员
- 类型 确实是 字典
- 存放着 元素键值对
- 怎么访问key为lang 的字典项呢?
et_html.attrib
et_html.attrib["lang"]
- 效果
- 如果元素有两个属性呢?
et_html.attrib["lang"] = "zh_Hans"
et_html.attrib["id"] = "root"
print(etree.tostring(et_html,pretty_print=True).decode())
- 能看到 两个属性 吗?
- 可以看到
et_html.attrib
et_html.attrib["lang"]
et_html.attrib["id"]
- 还可以分别访问
- 了解 了 etree.tostring() 函数参数
- method = "text"
- 可以控制输出结果只包含 text 和 tail
- pretty_print = True
- 可以控制输出结果包含缩进信息
- with_tail = False
- 可以控制输出结果不包含 tail
- method = "text"
| 属性 | 英文 |
|---|---|
| tag | 标签 |
| text | 文本 |
| tail | 尾巴 |
| attrib | 属性 |
- etree上 除了etree.Element
- 还有
啥呢?
- 还有
- 下次再说👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。











