python DOM有什么用

Python037

python DOM有什么用,第1张

DOM介绍

(1)什么是DOM

·DOM:文档对象模型。DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。目的其实就是为了能让js操作html元素而制定的一个规范。

·DOM就是由节点组成的。

相关推荐:《Python教程》

(2)解析过程

·HTML加载完毕,渲染引擎会在内存中把HTML文档,生成一个DOM树,getElementById是获取内中DOM上的元素节点。然后操作的时候修改的是该元素的属性。

·DOM树(一切都是节点)

DOM的数据结构如下:

上图可知,在HTML当中,一切都是节点:(非常重要)

·元素节点:HMTL标签。

·文本节点:标签中的文字(比如标签之间的空格、换行)

·属性节点::标签的属性。

整个html文档就是一个文档节点。所有的节点都是Object。

(3)DOM可以做什么

·找对象(元素节点)

·设置元素的属性值

·设置元素的样式

·动态创建和删除元素

·事件的触发响应:事件源、事件、事件的驱动程序

xml.etree.ElementTree 模块实现了一个简单高效的API,用于解析和创建XML数据。

XML是一种固有的分层数据格式,最自然的表示方法是使用树。 ET ( xml.etree.ElementTree ) 有两个类: ElementTree 将整个XML文档表示为一个树, Element 表示该树中的单个节点。与整个文档的交互(读写文件)通常在 ElementTree 级别完成。与单个XML元素及其子元素的交互是在 Element 级别完成的。

可以通过从文件中读取来导入此数据:

或直接从字符串中解析:

fromstring() 将XML从字符串直接解析为 Element ,该元素是已解析树的根元素。其他解析函数可能会创建一个 ElementTree 。更多信息请查阅文档。

作为 Element , root 具有标签和属性字典:

还有可以迭代的子节点:

子级是可以嵌套的,我们可以通过索引访问特定的子级节点:

Element 实例元素的长度是其子元素的数量。那意味着如果你要检查元素是否真的为空,则应同时检查它的长度和它的 text 属性。元素标签,属性名称和属性值可以是字节或字符串。

Element 是一个灵活的容器对象,旨在将分层数据结构存储在内存中。可以说是 list 和 dict 之间的交叉。每个元素都有许多与之关联的属性:

例如: <tag attrib>text<child/>...</tag>tail 。

要创建元素实例,请使用 Element 构造函数或 SubElement 工厂函数。您还可以使用 ElementTree 类包装元素结构,并将其与 XML 相互转换。

考虑到元素的可拓展性,最好使用 SubElement 工厂函数,来生成子元素。上面的子元素可以这样生成:

可以使用Python自带的HTMLParser模块解析HTML文档:

HTMLParser的核心模块是org.htmlparser.Parser类,这个类实际完成了对于HTML页面的分析工作。这个类有下面几个构造函数:

public Parser ()

public Parser (Lexer lexer, ParserFeedback fb)

public Parser (URLConnection connection, ParserFeedback fb) throws ParserException

public Parser (String resource, ParserFeedback feedback) throws ParserException

public Parser (String resource) throws ParserException

public Parser (Lexer lexer)

public Parser (URLConnection connection) throws ParserException

和一个静态类public static Parser createParser (String html, String charset)