找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4958|回复: 2

[已解决] html处理中handle_starttag和handle_startendtag的区别

6

主题

8

帖子

8

积分

贫民

积分
8
tingyanqinxing 发表于 2016-8-20 14:28:11 | 显示全部楼层 |阅读模式
新手,请问html处理中handle_starttag和handle_startendtag有什么区别,分别在什么时候使用??
回复

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-8-20 18:07:59 | 显示全部楼层
HTMLParser.handle_starttag(tag, attrs)

该方法用来处理一个标记的开始。通常被派生类重载;基类的实例什么都不做。

tag 参数是 tag 的名字的小写化。 attrs 参数是一个 list ,由 (name, value) 组成,反映了 <> 里面的属性。 name 会被翻译成小写字母,在 value 中的引号也被移除了,字符实体引用也会被替换。例如,有个 tag<A HREF=”http://www.pythontab.com/”> ,那么使用该方法就该这么做: handle_starttag(’a’, [(’href’, ’http://www.pythontab.com/’)])

Changed in version 2.6: 来自 htmlentitydefs 的所有实体引用都被属性值替换。


HTMLParser.handle_startendtag(tag, attrs)

和 handle_starttag() 类似,用来处理 XHTML 风格的 空标签( <a .../> )。可能被子类重载, which require this particular lexical information; 默认的实现只是简单的调用 handle_starttag() 和 handle_endtag()

HTMLParser.handle_endtag(tag)

该方法用来处理元素结束标记。可以被派生类重载;基类什么也不做。 tag 参数是 tag 的 name 转化来的小写字母。

其实内部调用的就是 handle_starttag() 和 handle_endtag()
回复 支持 1 反对 0

使用道具 举报

6

主题

8

帖子

8

积分

贫民

积分
8
tingyanqinxing  楼主| 发表于 2017-3-17 22:50:01 | 显示全部楼层
blueelwang 发表于 2016-8-20 18:07
HTMLParser.handle_starttag(tag, attrs)

该方法用来处理一个标记的开始。通常被派生类重载;基类的实例什 ...

多谢回答
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表