python教程:[75]HTMLParser采集网页数据
HTMLParser是python自带的处理html文件的模块,用起来非常简单,但很有实用价值,下面我们通过一个简单的例子来说明它的工作机制,然后对它所包含的所有方法进行一个说明。
先看一个简单的例子,我们先引入HTMLParser,然后声明一个类,继承自HTMLPaerser,然后定义了一个方法,这个方法继承自HTMLParser
![python教程:[75]HTMLParser采集网页数据](https://exp-picture.cdn.bcebos.com/cfadcdd96975f2c4f6372df08f0148fe1f420601.jpg)
这一段代码的运行结果是:从结果中我们可以看到feed方法是将要处理的html字符串传递给HTMLParser,处理的过程是从前到后逐个处理html文件的标签,当遇到一个标签的时候,就调用handle_starttag方法,我们写的这个方法就是将tag名打印出来,所以就出现了下面这个结果:
![python教程:[75]HTMLParser采集网页数据](https://exp-picture.cdn.bcebos.com/5e4e9c2b74ee1c321cb6259f07f1d8a727334b01.jpg)
HTMLParser内置方法
feed()和handle_starttag()已经说了,这里不再重复
handle_endtag():处理结束标签,比如</a>就是一个结束标签,当遇到结束标签的时候调用该方法
handle_data():处理数据,比如<a>这是数据</a>,“这是数据”就是data,当遇到data的时候调用该方法。
handle_entityref():处理“>”“>”“>”这样的字符串,他们各有自己指代的字符,处理的方法是使用name2codepoint将其转换,就可以知道gt原来是>的意思
![python教程:[75]HTMLParser采集网页数据](https://exp-picture.cdn.bcebos.com/e4b5e2f5ee0d3acecd7906d887e265e7350fbb01.jpg)
![python教程:[75]HTMLParser采集网页数据](https://exp-picture.cdn.bcebos.com/ba97ffd06de89a61f38b352045e8b004551bad01.jpg)
handle_charref()处理十进制或十六进制“>”这样的字符串,可以将其转换为>
handle_comment()处理<!--comment-->内的内容
handle_decl()处理html文档类型声明,例如<!coctype html>
大部分方法都列在上面了,还有一些不常用就没有写,这些相信已经够你用了。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:67
阅读量:162
阅读量:63
阅读量:101
阅读量:101