# 关于html.parse.HTMLParser的使用 from html.parser import HTMLParser class MyHtmlParser(HTMLParser): # 使用“<!DOCTYPE html>”将会被调出来 def handle_decl(self, decl): # 实现基类的方法 HTMLParser.handle_decl(self, decl) # 自定义输出 print('decl {}'.format(decl)) # 开始标签 def handle_starttag(self, tag, attrs): HTMLParser.handle_starttag(self, tag, attrs) print("start tag is <{}>".format(tag)) # 结束标签 def handle_endtag(self, tag): HTMLParser.handle_endtag(self, tag) print("end tag is </{}>".format(tag)) # 打印数据 def handle_data(self, data): HTMLParser.handle_data(self, data) print('data is {}'.format(data)) # 打印单标签 def handle_startendtag(self, tag, attrs): HTMLParser.handle_startendtag(self, tag, attrs) print('单标签: {}'.format(tag)) # 打印注释 def handle_comment(self, data): HTMLParser.handle_comment(self, data) print("comment is /*{}*/".format(data)) # 关闭 def close(self): HTMLParser.close(self) print('Close...') my_html_parser = MyHtmlParser() # 调用解析函数 # HTMLParser.feed()进行解析 my_html_parser.feed("<html><head><title>Test</title></head><body><h1>Parse me!<br /></h1></body></html>") my_html_parser.close() # 文件结束的处理方法,貌似可以释放缓冲区 """ D:\笔记\python电子书\Python3>python index.py start tag is <html> start tag is <head> start tag is <title> data is Test end tag is </title> end tag is </head> start tag is <body> start tag is <h1> data is Parse me! start tag is <br> end tag is </br> 单标签: br end tag is </h1> end tag is </body> end tag is </html> Close... """ """ 附加笔记: HTMLParser.reset():重置实例,丢失所有未处理的数据,这被称为隐式实例化时间 HTMLParser.getpos():返回当前行数和偏移量信息 """
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现