重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以使用Python自带的HTMLParser模块解析HTML文档:
创新互联从2013年成立,先为晋江等服务建站,晋江等地企业,进行企业商务咨询服务。为晋江企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
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);
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 attribtextchild/.../tagtail 。
要创建元素实例,请使用 Element 构造函数或 SubElement 工厂函数。您还可以使用 ElementTree 类包装元素结构,并将其与 XML 相互转换。
考虑到元素的可拓展性,最好使用 SubElement 工厂函数,来生成子元素。上面的子元素可以这样生成: