闪电龟龟--笔记

万物寻其根,通其堵,便能解其困。
随笔 - 169, 文章 - 0, 评论 - 1, 阅读 - 79596
  博客园  :: 新随笔  :: 管理

HTMLParser 笔记

Posted on   闪电龟龟  阅读(343)  评论(0编辑  收藏  举报
复制代码
# 关于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与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示