作为对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相关推荐

  1. python json操作_4个小窍门,让你在Python中高效使用JSON

    字典和列表是 Python的两种数据类型,也是用来处理JSON的完美工具.本文将主要分享以下内容: 如何载入.编写JSON? 如何在命令行上优化.校验JSON? 如何通过使用JMESPath对JSON ...

  2. python怎么学最快-怎么样快速高效学习Python

    怎么样快速高效学习Python.最近学习Python语言的伙伴越来越多,但大多数人都没有太多时间用在学习上.那么怎么样学习Python时间短又高效的方法就很重要了.下面我把我学习python的方法简单 ...

  3. 全面对比 MATLAB、Julia、Python,谁在科学计算中更胜一筹?

    数百种编程语言,各有优劣,各自也都有自己最为适用的场景.那么就科学计算领域而言,主流的 MATLAB.Julia.Python 会有哪些最为独特的优势呢?又存在哪些让开发者无力的缺陷?在本文中,我们将 ...

  4. c中获取python控制台输出_linux c程序中获取shell脚本输出的实现方法

    [转]Linux Shell脚本调试技术 本文转载自:https://www.ibm.com/developerworks/cn/linux/l-cn-shell-debug/ Shell脚本调试技术 ...

  5. python小练——下载指定url中的图片

    python小练--下载指定url中的图片 #coding=gbk #download pictures of the url #useage: python downpicture.py www.b ...

  6. python pandas教程pdf_学习python中的pandas有没有好的教程推荐?

    选摘了一小部分,详细的参见上述原文 图片.png <Python数据科学手册>是对以数据深度需求为中心的科学.研究以及针对计算和统计方法的参考书.本书共五章,每章介绍一到两个Python数 ...

  7. 如何自学python知乎-怎么用最短时间高效的学习Python!知乎大佬给出了这样的答案!...

    怎么用最短时间高效的学习Python!知乎大佬给出了这样的答案! 文章最后的资料免费送给各位想学习又找不到方法,找不到资源的小伙伴 1.入门读物 2.进阶读物 3.Web框架 4.爬虫开发 5.图形图 ...

  8. python各个关键词的意思_想学好Python,你必须了解Python中的35个关键词

    每种编程语言都会有一些特殊的单词,称为关键词.对待关键词的基本要求是,你在命名的时候要避免与之重复.本文将介绍一下Python中的关键词.关键词不是内置函数或者内置对象类型,虽然在命名的时候同样也最好 ...

  9. python计算密集型提速_揭秘Numpy“高效使用哲学”,数值计算再提速10倍!

    读过很多讲解Numpy的教程后,我准备写一个Numpy系列.结合工作项目实践,以Numpy高效使用哲学为主线,重点讲解高频使用函数. 1 Numpy更高效 使用Python的地方,就能看到Numpy, ...

最新文章

  1. 谨慎能捕千秋蝉(二)——CSRF
  2. Winform中使用DevExpress时给控件添加子控件的方法
  3. netty系列之:channelPipeline详解
  4. python三大特征六大原则_面向对象程序设计(Object Oriented Programming)的三大特性,六大原则...
  5. 前端学习(2799):实现资讯的结构和列表
  6. 这个是帮朋友发的,。。。我也觉得挺无聊的。
  7. 天涯明夜刀手游微信第一服务器,天涯明月刀手游微信哪个区人多 微信一区选哪个好[多图]...
  8. 1.4编程基础之逻辑表达式与条件分支 17 判断闰年
  9. Android 自定义ImageView加载图片
  10. linux tomcat启动nohup,linux下tomcat添加服务
  11. 双十一快到了,快递却不干了?
  12. DeepLearning | Tensorflow编程基础:Session、Constant、Variable、Tensor、Placeholder、OP
  13. 记一次MySQL中Waiting for table metadata lock的解决方法
  14. sql 存储过程分页
  15. 初识delphi-spring-framework
  16. iOS 元素定位方式总结
  17. HpSocket源码使用
  18. 查看文件的MD5值得方法 (校验完整性)
  19. 程序员的思维(转载于伯乐在线-author:水流年)
  20. CentOS 7 下安装五笔输入法

热门文章

  1. js创建文件并压缩成zip
  2. android 32位crc,android arm64硬件实现加速crc32算法
  3. 01Nginx基础(反向代理知识及常用命令)
  4. Socket 编程实现基于 HTTP 协议的客户和服务
  5. 【正点原子MP157连载】第十二章 按键输入实验-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南
  6. 如何将Creo3.0模型导入Ansoft Maxwell 中电磁仿真
  7. CLRS[1]:general concept
  8. 认识无线网络之Wi-Fi
  9. 团购网到底该如何实现平台化转型
  10. 计算机一级学平均数,excel计算平均值怎么做?计算机一级考试╭(╯ε╰)╮