免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3306 | 回复: 6
打印 上一主题 下一主题

python如何将html数字编码后的文本还原? [复制链接]

论坛徽章:
1
白羊座
日期:2014-11-13 10:19:16
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-10 16:41 |只看该作者 |倒序浏览
本帖最后由 iocg 于 2014-11-10 16:52 编辑

python有什么方法可以将html数字编码后的文本,还原?
例如:

还原成
  1. 我爱 <chinaunix> 论坛
  2. I love "chinaunix" Forums
  3. 私は&chinaunix&フォーラムが大好き
  4. Je l'àime ¿chinaunix¿ Förums
复制代码
1.rar (236 Bytes, 下载次数: 3)

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
2 [报告]
发表于 2014-11-10 18:06 |只看该作者
本帖最后由 ssfjhh 于 2014-11-11 10:40 编辑
  1. list(int, re.findall(string, '\d'))
复制代码

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
3 [报告]
发表于 2014-11-10 19:16 |只看该作者
回复 2# ssfjhh


    这也行?

论坛徽章:
1
白羊座
日期:2014-11-13 10:19:16
4 [报告]
发表于 2014-11-10 21:28 |只看该作者
回复 3# reyleon


    在网上找到HTMLParser库好像可以实现。

     HTMLParser采用的是一种事件驱动的模式,当TMLParser找到一个特定的标记时,它会去调用一个用户定义的函数,以此来通知程序处理。它主要的用户回调函数的命名都是以handler_开头的,都是HTMLParser的成员函数。当我们使用时,就从HTMLParser派生出新的类,然 后重新定义这几个以handler_开头的函数即可。
    handle_charref      处理特殊字符串,就是以&#开头的,一般是内码表示的字符
    handle_entityref    处理一些特殊字符,以&开头的,比如 &nbsp;
    handle_data         处理数据,就是<xx>data</xx>中间的那些数据

    请问下知道具体代码怎么实现吗?

论坛徽章:
13
双鱼座
日期:2013-10-23 09:30:05数据库技术版块每日发帖之星
日期:2016-04-20 06:20:00程序设计版块每日发帖之星
日期:2016-03-09 06:20:002015亚冠之塔什干火车头
日期:2015-11-02 10:07:452015亚冠之德黑兰石油
日期:2015-08-30 10:07:07数据库技术版块每日发帖之星
日期:2015-08-28 06:20:00数据库技术版块每日发帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龙
日期:2014-12-03 14:45:52酉鸡
日期:2014-07-23 09:46:23亥猪
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
5 [报告]
发表于 2014-11-11 09:56 |只看该作者
import re
try:
    from htmlentitydefs import entitydefs
except ImportError:  # Python 3
    from html.entities import entitydefs


def htmlspecialchars_decode_func(m, defs=entitydefs):
    try:
        return defs[m.group(1)]
    except KeyError:
        return m.group(0)  # use as is


def htmlspecialchars_decode(string):
    pattern = re.compile("&(\w+?);")
    return pattern.sub(htmlspecialchars_decode_func, string)

论坛徽章:
1
白羊座
日期:2014-11-13 10:19:16
6 [报告]
发表于 2014-11-11 22:46 |只看该作者
回复 5# bikong0411


    请问这m该传入怎样的值呢?

论坛徽章:
13
双鱼座
日期:2013-10-23 09:30:05数据库技术版块每日发帖之星
日期:2016-04-20 06:20:00程序设计版块每日发帖之星
日期:2016-03-09 06:20:002015亚冠之塔什干火车头
日期:2015-11-02 10:07:452015亚冠之德黑兰石油
日期:2015-08-30 10:07:07数据库技术版块每日发帖之星
日期:2015-08-28 06:20:00数据库技术版块每日发帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龙
日期:2014-12-03 14:45:52酉鸡
日期:2014-07-23 09:46:23亥猪
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
7 [报告]
发表于 2014-11-13 09:31 |只看该作者
回复 6# iocg


    htmlspecialchars_decode(string) ,你传入string就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP