python对含html转义字符编码(四)进行转换

在抓取下来的网页源码显示的是如下的内容,而不是可读性的汉字

(当然,如果是在Web页面上展示,则实体会自动被浏览器转为原字符,正常显示)
经查资料后得知, 在网页中以四开头的是HTML实体,具体什么是HTML实体,

请百度:http://baike.baidu.com/view/4757776.htm

如何把汉字转换成HTML实体呢?

其实很简单,汉字的HTML实体由三部分组成,”&#+ASCII+;“ 即可。

Python中提供了一个模块:HTMLParser,里面有很多好用的方法,

我们可以使用:dir(HTMLParser.HTMLParser)查看该模块下的HTMLParser类属性,其中有一个方法:unescape(),

再使用:help(HTMLParser.HTMLParser.unescape),可以看到该方法的说明信息,但是几乎没什么用。其实该方法就是将HTML实体(带有&#符号打头的)进行解码,转换为原有字符。下面是简单实例:

<span style='font-size:7.0pt;mso-ascii-font-family:Arial;mso-hansi-font-family:Arial;
mso-bidi-font-family:Arial'>&#19978;&#28023;<spanclass=GramE>&#37329;&#34701;</span>&#26381;&#21153;&#26377;&#38480;&#20844;&#21496;</span><span>

以上的html代码含有unicode编码字符,使用HTMLParser可以轻松处理

import HTMLParser
def decodeHtml(input):
    h = HTMLParser.HTMLParser()
    s = h.unescape(input)
    return s

c = (含html转义字符的内容, 如需测试请自行粘贴)

print decodeHtml(c)

转换后

span style='font-size:7.0pt;mso-ascii-font-family:Arial;mso-hansi-font-family:Arial;mso-bidi-font-family:Arial'>上海<span class=GramE>金融</span>服务有限公司</span><span>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值