用html5lib过滤器截断html

html5lib-truncation的Python项目详细描述


html5lib-truncation是一个html5lib筛选器实现,它可以 在显示中将HTML截断为特定长度,但不要打断HTML标记。

有一个快捷功能,最简单的使用方法:

>>>fromhtml5lib_truncationimporttruncate_html>>>>>>html=u'<p>A <a href="#">very very long link</a></p>'>>>truncate_html(html,8)u'<p>A <a href=#>very</a>'>>>truncate_html(html,8,break_words=True)u'<p>A <a href=#>very ve</a>'>>>truncate_html(html,20,end='...')u'<p>A <a href=#>very very...</a>'>>>truncate_html(html,20,end='...',break_words=True)u'<p>A <a href=#>very very lon...</a>'

安装

pip install html5lib-truncation

别忘了把它放进你的requirements.txtsetup.py中。

API概述

html5lib截短的核心api是过滤器:

importhtml5libfromhtml5lib_truncationimportTruncationFilteretree=html5lib.parse(u'<p>A <a href="#">very very long link</a></p>')walker=html5lib.getTreeWalker('etree')stream=walker(etree)stream=TruncationFilter(stream,20,end='...',break_words=True)serializer=html5lib.serializer.HTMLSerializer()serialized=serializer.serialize(stream)print(u''.join(serialized).strip())

输出是<p>A <a href=#>very very lon...</a>

问题

如果要报告错误或其他问题,请在 GitHub Issues

贡献

你可以派一辆拉力车来 GitHub

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
编译器构造为什么在Java中允许初始化对Null的引用?   java手动调用javax的actionPerformed。摆动计时器   使用git分支的java Maven版本控制   Java8句子流   java JPA OneToOne和OneToMany实体实例化/创建   java如何将值添加到列表<Map<String,Object>>?   java如何使用ComboBox在一个框架内更改JPanel。getSelectedIndex()   java在比较XML和xmlunit时忽略文本差异   java无法从其他pc连接到本地主机   Java中分配对象id的优雅方式   Java中静态变量的使用   java试图从Neteller获取OAuth访问令牌时产生错误:“服务器返回HTTP响应代码:401表示URL”   Java:基元类型是否会影响性能?   java可以让hasNext()不区分大小写吗?   基于AutoCompleteTextView建议属性或AutoCompleteTextView值的java Android搜索   java流文件到firefox浏览器有时无法打开应用程序对话框   在没有ArrayList的Java中返回数组中的搜索结果   复制java。木卫一。IOException:数据错误(CRC)   java为什么我在尝试删除Facebook测试用户时会出现“方法未实现”错误   java如何使用JNA调用SetProcessReliationPolicy