python解析HTML的方法——HTMLParser
来源:互联网 发布:windows音效 编辑:程序博客网 时间:2024/05/29 12:07
HTMLParser是python用来解析html的模块。它可以分析出html里面的标签、数据等等,是一种处理html的简便途径。 HTMLParser采用的是一种事件驱动的模式,当HTMLParser找到一个特定的标记时,它会去调用一个用户定义的函数,以此来通知程序处理。它 主要的用户回调函数的命名都是以handler_开头的,都是HTMLParser的成员函数。当我们使用时,就从HTMLParser派生出新的类,然 后重新定义这几个以handler_开头的函数即可。
#coding=utf-8 from HTMLParser import HTMLParser class MyParser(HTMLParser): """一个简单的HTMLparser的例子""" def handle_decl(self, decl): """处理头文档""" HTMLParser.handle_decl(self, decl) print decl def handle_starttag(self, tag, attrs): """处理起始标签""" HTMLParser.handle_starttag(self, tag, attrs) if not HTMLParser.get_starttag_text(self).endswith("/>"): print "<",tag,">" def handle_data(self, data): """处理文本元素""" HTMLParser.handle_data(self, data) print data, def handle_endtag(self, tag): """处理结束标签""" HTMLParser.handle_endtag(self, tag) if not HTMLParser.get_starttag_text(self).endswith("/>"): print "</",tag,">" def handle_startendtag(self, tag, attrs): """处理自闭标签""" HTMLParser.handle_startendtag(self, tag, attrs) print HTMLParser.get_starttag_text(self) def handle_comment(self, data): """处理注释""" HTMLParser.handle_comment(self, data) print data def close(self): HTMLParser.close(self) print "parser over" demo=MyParser()demo.feed(open("d:\\hello.html").read()) demo.close()
我的代码:
class MyHTMLParser(HTMLParser): ''' parser class ''' def __init__(self): HTMLParser.__init__(self) def handle_starttag(self,tag,attrs): ''' The wrong row has the wrong bgcolor''' if tag == 'tr' : if len(attrs): if attrs[0][1] != '#22DD22': print 0def getError(): ''' parser the html text ''' parserObj = MyHTMLParser() parserObj.feed(getHTML()) parserObj.close()
class MyHTMLParser(HTMLParser): ''' parser class ''' def __init__(self): HTMLParser.__init__(self) self.tr = False self.td = 0 self.ToPrint = False def handle_starttag(self,tag,attrs): ''' find the tr and find the td ''' HTMLParser.handle_starttag(self, tag, attrs) if tag == 'tr' : if len(attrs): self.tr = True if tag == 'td' and self.tr == True: if self.td == 0: self.td = self.td + 1 else: self.ToPrint = True self.tr = False self.td = 0 def handle_data(self,data): ''' print the td's text ''' HTMLParser.handle_data(self, data) if self.ToPrint: self.ToPrint = False if data.strip() != 'true': print 0 sys.exit()
- python解析HTML的方法——HTMLParser
- 使用Python的HTMLParser解析HTML文本
- python 解析html基础 HTMLParser库,方法,及代码实例
- python:解析html(HTMLParser、SGMLParser)
- python中html解析 HTMLParser与sgmllib
- python 模块-使用HTMLParser 解析html
- python:解析html(HTMLParser、SGMLParser)
- Python中使用HTMLParser解析HTML文档
- Python 用HTMLParser解析HTML文件
- HTMLParser解析HTMl标签的实例
- Python——HTMLParser
- 使用HtmlParser解析HTML
- 使用HtmlParser解析HTML
- 使用HtmlParser解析HTML
- 使用HtmlParser解析HTML
- HTMLParser解析html详解
- htmlparser 解析HTML 思路
- python模块之HTMLParser: 解析html,获取url
- 爱上你之前,爱对我来说多么遥远:伤感日志
- 关于solution中导出xml损坏
- 编程2
- 风雨20年:我所积累的20条编程经验
- 勒索软件冒充警察,付罚款才能解锁
- python解析HTML的方法——HTMLParser
- Effective C++读书笔记(3)-Item 2: Prefer consts, enums, and inlines to #defines
- Doxygen按原始注释输出(保留空格和换行)
- 堆和栈
- LINUX内核模块编译步骤
- 罂栗花的伤感空间日志:爱情、只是宿命摆下的一个局
- 给定半径求周长、面积、表面积、体积
- apt-get install liblua5.1 安装Lua
- 必须要加强的技术(近期)