HTMLParser 笔记
# 关于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():返回当前行数和偏移量信息
"""
HTMLParser 笔记的更多相关文章
- 【搜索引擎Jediael开发笔记3】使用HtmlParser提取网页中的链接
关于HtmpParser的基本内容请见 HtmlParser基础教程 本文示例用于提取HTML文件中的链接 package org.ljh.search.html; import java.util. ...
- Python学习笔记(四十)— 内置模块(9)HTMLParser
摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432002312 ...
- NuGet学习笔记3——搭建属于自己的NuGet服务器
文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...
- NuGet学习笔记(3) 搭建属于自己的NuGet服务器
文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...
- NuGet学习笔记(2) 使用图形化界面打包自己的类库
上文NuGet学习笔记(1) 初识NuGet及快速安装使用说到NuGet相对于我们最重要的功能是能够搭建自己的NuGet服务器,实现公司内部类库的轻松共享更新.在安装好NuGet扩展后,我们已经能够通 ...
- IOS学习笔记25—HTTP操作之ASIHTTPRequest
IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...
- NuGet学习笔记(转)
NuGet学习笔记(1)——初识NuGet及快速安装使用 http://kb.cnblogs.com/page/143190/ 1. NuGet是什么? NuGet is a Visual Studi ...
- NuGet学习笔记(2)——使用图形化界面打包自己的类库
上文NuGet学习笔记(1) 初识NuGet及快速安装使用说到NuGet相对于我们最重要的功能是能够搭建自己的NuGet服务器,实现公司内部类库的轻松共享更新.在安装好NuGet扩展后,我们已经能够通 ...
- NuGet学习笔记(3)——搭建属于自己的NuGet服务器(转)
在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重要的一步,从零开始搭建属于自己的NuGet服务器,诚然园子里及其它很多地方已经有完全写好的Nu ...
随机推荐
- Python 操作系统介绍 进程的创建
背景知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所有内 ...
- 【Python】xml遍历练习
<?xml version="1.0" encoding="utf-8" ?> <!--this is a test about xml. ...
- 何时使用SUM()与SUMX()
概述 SUM()是一个聚合函数.在应用将影响公式的所有过滤器后,它会将您指定的单个列中的所有值相加.SUM()不知道行的存在(它不能逐行求值) - 它所能做的就是在应用过滤器之后将所有内容添加到它所呈 ...
- 电脑快捷键与JAVA关键字、运算符
电脑快捷键: Alt+ESC切换到上一个操作的窗口 Alt+F4关闭当前窗口 Print Screen截取当前全屏幕到剪切板 Alt+Print Screen截取当前窗口到剪切板 Alt+Shift在 ...
- 第七十五课 图的遍历(DFS)
添加DFS函数: #ifndef GRAPH_H #define GRAPH_H #include "Object.h" #include "SharedPointer. ...
- redis集群cluster模式搭建
实验服务器 :192.168.44.139 192.168.44.138 192.168.44.144 在 192.168.44.139上操作: 将redis的包上传的新建的目录newtouc ...
- Threejs着色器基本使用样例改造
<!DOCTYPE html> <html lang="en"> <head> <title>three.js webgl - bu ...
- 12.double的int方
给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 不要用Math.pow(double,double)哟.效率极其低下,比连成慢好多: 题 ...
- Linux /etc/password 文件详解
root2:x:0:0::/home/root2:/bin/bash[用户名]:[密码]:[UID]:[GID]:[身份描述]:[主目录]:[登录shell] 其中: ⒈[用户名]是passwd文件里 ...
- JS导入导出Excel表格的方法
https://blog.csdn.net/aa122273328/article/details/50388673 导出 https://blog.csdn.net/qq_37281252/arti ...