python空格符转义_Python处理Html的转义字符为实体字符

本文介绍了如何在Python不同版本中使用HTMLParser和html模块的unescape函数,处理从HTML抓取的转义字符,特别关注了Python3中处理空格符的方法,并提到了爬虫处理转义字符的常见情况。
摘要由CSDN通过智能技术生成

目的

在Html超文本中,有些字符会被转义字符代替,如空格、引号、大于号、小于号等等,爬虫爬取这些转义字符时,如果爬取的数据不用于前端展示,用于其他分析,那么这些转义字符有一定的干扰作用,因此这里将转义字符转换成实体字符。

参考

转换

1、对于Python2.7版本,采用HTMLParser中的unescape

In [5]: from HTMLParser import HTMLParser

In [6]: parse=HTMLParser()

In [7]: parse.unescape('"')

Out[7]: u'"'

2、对于Python3.4+版本,采用html中的unescape

In [1]: from html import unescape

In [2]: unescape('"')

Out[2]: '"'

注意

unescape会将一些空格符转换成‘\x’或者‘\u’的unicode编码方式。

对于这些如’\u3000、\xa0’等不可见的空格符,可以使用strip去除,如果不想去除,可以使用re.sub或者replace替换成” “。

In [2]: unescape(' ')

Out[2]: '\xa0'

In [3]: unescape('\xa0')

Out[3]: '\xa0'

In [4]: unescape(' ')

Out[4]: '\u2003'

In [5]: unescape('\u3000')

Out[5]: '\u3000'

In [6]: unescape('\u2020')

Out[6]: '†'

In [7]: '\u3000'.strip()

Out[7]: ''

In [8]: '\xa0'.strip()

Out[8]: ''不过对于爬虫来讲,一般会对这类空格符(如: 、 等等)自动转变成unicode的表达形式,但是对于其他转义字符不会处理。

最后

对于Python2.7版本就多记录了,毕竟都快放弃维护了,对于Python3中的html模块,之前都没有使用过这个模块,html只提供了两个函数:escape和unescape,unescape的功能上面已经实践了,escape的功能则是跟unescape相反,将实体字符转换成转义字符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值