python htmlparser怎么用,在Python中高效地使用HTMLParser
作为对Python regular expression的响应,我尝试使用HTMLParser实现一个HTML解析器:import HTMLParser
class ExtractHeadings(HTMLParser.HTMLParser):
def __init__(self):
HTMLParser.HTMLParser.__init__(self)
self.text = None
self.headings = []
def is_relevant(self, tagname):
return tagname == 'h1' or tagname == 'h2'
def handle_starttag(self, tag, attrs):
if self.is_relevant(tag):
self.in_heading = True
self.text = ''
def handle_endtag(self, tag):
if self.is_relevant(tag):
self.headings += [self.text]
self.text = None
def handle_data(self, data):
if self.text != None:
self.text += data
def handle_charref(self, name):
if self.text != None:
if name[0] == 'x':
self.text += chr(int(name[1:], 16))
else:
self.text += chr(int(name))
def handle_entityref(self, name):
if self.text != None:
print 'TODO: entity %s' % name
def extract_headings(text):
parser = ExtractHeadings()
parser.feed(text)
return parser.headings
print extract_headings('abdk3
The content we need
aaaaabbb
The content we need2
')
print extract_headings('before
Hello
after')
我想知道这个模块的API是坏的还是我没有注意到一些重要的事情。我的问题是:为什么我的handle_charref的实现必须如此复杂?{cd4{I>作为一个预期的为什么handle_charref的默认实现不使用适当的字符串调用handle_data?在
为什么没有我可以调用的handle_entityref的实用程序实现?它可以命名为handle_entityref_HTML4,它将查找html4中定义的实体,然后对它们调用handle_data。在
如果提供了这个API,编写定制的HTML解析器就会容易得多。我的误解在哪里?在
python htmlparser怎么用,在Python中高效地使用HTMLParser相关推荐
- python json操作_4个小窍门,让你在Python中高效使用JSON
字典和列表是 Python的两种数据类型,也是用来处理JSON的完美工具.本文将主要分享以下内容: 如何载入.编写JSON? 如何在命令行上优化.校验JSON? 如何通过使用JMESPath对JSON ...
- python怎么学最快-怎么样快速高效学习Python
怎么样快速高效学习Python.最近学习Python语言的伙伴越来越多,但大多数人都没有太多时间用在学习上.那么怎么样学习Python时间短又高效的方法就很重要了.下面我把我学习python的方法简单 ...
- 全面对比 MATLAB、Julia、Python,谁在科学计算中更胜一筹?
数百种编程语言,各有优劣,各自也都有自己最为适用的场景.那么就科学计算领域而言,主流的 MATLAB.Julia.Python 会有哪些最为独特的优势呢?又存在哪些让开发者无力的缺陷?在本文中,我们将 ...
- c中获取python控制台输出_linux c程序中获取shell脚本输出的实现方法
[转]Linux Shell脚本调试技术 本文转载自:https://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/ Shell脚本调试技术 ...
- python小练——下载指定url中的图片
python小练--下载指定url中的图片 #coding=gbk #download pictures of the url #useage: python downpicture.py www.b ...
- python pandas教程pdf_学习python中的pandas有没有好的教程推荐?
选摘了一小部分,详细的参见上述原文 图片.png <Python数据科学手册>是对以数据深度需求为中心的科学.研究以及针对计算和统计方法的参考书.本书共五章,每章介绍一到两个Python数 ...
- 如何自学python知乎-怎么用最短时间高效的学习Python!知乎大佬给出了这样的答案!...
怎么用最短时间高效的学习Python!知乎大佬给出了这样的答案! 文章最后的资料免费送给各位想学习又找不到方法,找不到资源的小伙伴 1.入门读物 2.进阶读物 3.Web框架 4.爬虫开发 5.图形图 ...
- python各个关键词的意思_想学好Python,你必须了解Python中的35个关键词
每种编程语言都会有一些特殊的单词,称为关键词.对待关键词的基本要求是,你在命名的时候要避免与之重复.本文将介绍一下Python中的关键词.关键词不是内置函数或者内置对象类型,虽然在命名的时候同样也最好 ...
- python计算密集型提速_揭秘Numpy“高效使用哲学”,数值计算再提速10倍!
读过很多讲解Numpy的教程后,我准备写一个Numpy系列.结合工作项目实践,以Numpy高效使用哲学为主线,重点讲解高频使用函数. 1 Numpy更高效 使用Python的地方,就能看到Numpy, ...
最新文章
- 谨慎能捕千秋蝉(二)——CSRF
- Winform中使用DevExpress时给控件添加子控件的方法
- netty系列之:channelPipeline详解
- python三大特征六大原则_面向对象程序设计(Object Oriented Programming)的三大特性,六大原则...
- 前端学习(2799):实现资讯的结构和列表
- 这个是帮朋友发的,。。。我也觉得挺无聊的。
- 天涯明夜刀手游微信第一服务器,天涯明月刀手游微信哪个区人多 微信一区选哪个好[多图]...
- 1.4编程基础之逻辑表达式与条件分支 17 判断闰年
- Android 自定义ImageView加载图片
- linux tomcat启动nohup,linux下tomcat添加服务
- 双十一快到了,快递却不干了?
- DeepLearning | Tensorflow编程基础:Session、Constant、Variable、Tensor、Placeholder、OP
- 记一次MySQL中Waiting for table metadata lock的解决方法
- sql 存储过程分页
- 初识delphi-spring-framework
- iOS 元素定位方式总结
- HpSocket源码使用
- 查看文件的MD5值得方法 (校验完整性)
- 程序员的思维(转载于伯乐在线-author:水流年)
- CentOS 7 下安装五笔输入法
热门文章
- js创建文件并压缩成zip
- android 32位crc,android arm64硬件实现加速crc32算法
- 01Nginx基础(反向代理知识及常用命令)
- Socket 编程实现基于 HTTP 协议的客户和服务
- 【正点原子MP157连载】第十二章 按键输入实验-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
- 如何将Creo3.0模型导入Ansoft Maxwell 中电磁仿真
- CLRS[1]:general concept
- 认识无线网络之Wi-Fi
- 团购网到底该如何实现平台化转型
- 计算机一级学平均数,excel计算平均值怎么做?计算机一级考试╭(╯ε╰)╮