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 ...
随机推荐
- ChinaCock界面控件介绍-CCButton
即将发布的ChinaCock新版本,将带来一个CCButton控件,实现可视按钮.Delphi原生的Button,在上面滑动后,当释放手指时会误触发OnClick事件,这不是我们想要的结果,CCBut ...
- Python 网络通信协议 tcp udp区别
网络通信的整个流程 在这一节就给大家讲解,有些同学对网络是既熟悉又陌生,熟悉是因为我们都知道,我们安装一个路由器,拉一个网线,或者用无限路由器,连上网线或者连上wifi就能够上网购物.看片片.吃鸡了, ...
- LeetCode--219、268、283、414、448 Array(Easy)
219. Contains Duplicate II Given an array of integers and an integer k, find out whether there are t ...
- Java编程中必须了解 十几个代码段
向文件末尾添加内容 字符串有整型的相互转换 转字符串到日期 java.util.Date = java.text.DateFormat.getDateInstance().parse(date Str ...
- scp 脚本
#!/bin/bash ty=$ local_dir=$ remote_ip=$ remote_dir=$ showUsage() { echo -e "\033[31m ty local_ ...
- Python学习笔记第十七周
目录: 一.jQuery 内容: 一.jQuery: ps:版本 1.xx (推荐最新版本,兼容性好) 2.xx 3.xx 转换: jQuery对象[0] => DOM对象 $(DOM对象 ...
- 【转载】 pytorch之添加BN
原文地址: https://blog.csdn.net/weixin_40123108/article/details/83509838 ------------------------------- ...
- git get submodule after clone
/********************************************************************************* * git get submodu ...
- Linux批量解压文件
最近下载了Imagenet2012的数据文件,训练数据下有很多tar文件,这些tar文件都在一个目录内,所以想批量解压到该目录下每个单独的文件夹内 批量解压的步骤是, 1.列出所有的以tar为后缀的文 ...
- urllib.request中Handler处理器
1.定义 自定义的urlopen()方法,urlopen()方法是一个特殊的opener(模块已定义好),不支持代理等功能,通过Handler处理器对象来自定义opener对象 2.常用方法 1.bu ...