Python API 翻译-HTMLParser模块

Python 支持各种格式的结构化数据标记。包括SGML,HTML,XML

 

XML包中的模块需要SAX-compliant XML parser 是可用的。PyXML插件包提供了XML扩展

 

20.1HTMLParser-简单的HTML和XHTML parser

 

在Python 3.0中,HTMLParser is renamed tohtml.parser

 

该模块定义了一个类HTMLParser,用来解析HTML文本文件,也包括XHTML。和htmllib不同,它并非基于SGMLparser。

 

classHTMLParser.HTMLParser

使用HTMLParser的实例,填充HTML数据,并在开始和结束标记间调用函数。HTMLParser类意味着重载。

 

和htmllib的分析器不同,this parser 并不检测和开始标记对应的结束标记or call the end-tag handler for elements which are close implicitlyby closing an outer element.

 

这里还有一个例外情况:

exception HTMLParser.HTMLParserError

当分析遇到Error时HTMLParser会抛出异常。该异常提供三个属性:msg,lineno and offset。

 

HTMLParser 实例有如下的方法:

 

HTMLParser.reset()

重置实例. 所有未处理的数据都会丢失。在初始化时自动调用。

 

HTMLParser.feed(data)

给分析器喂食。在由完整元素构成的情况下工作;不完整数据情况下,会进行缓冲知道更多数据加进来或者close()被调用。

 

HTMLParser.close()

处理所有缓冲数据。这个方法可以被派生类重定义,以便在输入结束后处理额外的事情,重定义的版本也要调用HTMLParser基类的close()方法。

 

HTMLParser.getpos()

返回当前行数和列数

 

HTMLParser.get_starttag_text()

返回最近打开过得开始标记处的文本。通常不会用到,but may be useful in dealing with HTML “as deployed” or forre-generating input with minimal changes (whitespace between attributes can bepreserved, etc.).

 

HTMLParser.handle_starttag(tag, attrs)

该方法用来处理一个标记的开始。通常被派生类重载;基类的实例什么都不做。

tag 参数是tag的名字的小写化。attrs参数是一个list,由(name, value)组成,反映了<>里面的属性。name会被翻译成小写字母,在value中的引号也被移除了,字符实体引用也会被替换。例如,有个tag<A HREF=”http://www.cwi.nl/”>,那么使用该方法就该这么做: handle_starttag(’a’, [(’href’, ’http://www.cwi.nl/’)])

 

Changed in version 2.6: 来自htmlentitydefs的所有实体引用都被属性值替换。

 

HTMLParser.handle_startendtag(tag, attrs)

和handle_starttag() 类似,用来处理XHTML风格的 空标签(<a .../>)。可能被子类重载,which require this particular lexicalinformation; 默认的实现只是简单的调用handle_starttag()和handle_endtag()

 

HTMLParser.handle_endtag(tag)

该方法用来处理元素结束标记。可以被派生类重载;基类什么也不做。tag参数是tag的name转化来的小写字母。

 

HTMLParser.handle_data(data)

       该方法用来处理随机的数据。可以被派生类重载;基类什么也不做。

 

HTMLParser.handle_charref(name)

       处理 &#ref 格式的字符引用。可以被派生类重载;基类什么也不做。

 

HTMLParser.handle_entityref(name)

       处理一般的 &name 格式的实体引用。name是一个一般的实体引用。可以被派生类重载;基类什么也不做。

 

HTMLParser.handle_comment(data)

处理遇到注释的情况。注释参数为在——和——之间的字符串文本,而不是分隔符自身。例如 <!--text-->,该方法将调用‘text’。可以被派生类重载;基类什么也不做。

 

HTMLParser.handle_decl(decl)

当分析器遇到SGML声明时调用此方法。decl参数是<!...>标记里的整个内容。可以被派生类重载;基类什么也不做。

 

 

HTMLParser.handle_pi(data)

处理命令,data参数包含整个的处理命令。例如<?proc color=’red’>,该方法应写成handle_pi(”proc color=’red’”). 可以被派生类重载;基类什么也不做。

from: http://blog.csdn.net/tianxicool/archive/2010/10/15/5942523.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值