整理网页数据的时候必然存在特殊含义符号的转义问题。
运行环境 Runtime environment
1 | 操作系统: Windos10 |
背景
整理网页数据的时候必然存在特殊含义符号的转义问题。
对某些数据清理操作造成了影响。
写爬虫是一个发送请求,提取数据,清洗数据,存储数据的过程。
在这个过程中,不同的数据源返回的数据格式各不相同,
有 JSON 格式,有 XML 文档,不过大部分还是 HTML 文档,HTML 经常会混杂有转移字符,
这些字符我们需要把它转义成真正的字符。
什么是转义字符
1 | 在 HTML 中 <、>、& 等字符有特殊含义(<,> 用于标签中,& 用于转义), |
Python 反转义字符串
python2
用 Python 来处理转义字符串有多种方式,而且 py2 和 py3 中处理方式不一样,
在 python2 中,反转义串的模块是 HTMLParser。
什么年代了还用python2,转行吧1
2
3
4import HTMLParser
HTMLParser().unescape('&dn=')
'&dn='
python3
Python3 把 HTMLParser 模块迁移到 html.parser
1
2
3
4from html.parser import HTMLParser
HTMLParser().unescape('&dn=')
'&dn='
到 python3.4 之后的版本,在 html 模块新增了 unescape 方法
1
2
3
4
import html
html.unescape('&dn=')
'&dn='
推荐最后一种写法,
因为 HTMLParser.unescape 方法在 Python3.4 就已经被废弃掉不推荐使用,
意味着之后的版本有可能会被彻底移除。
总结
html处理前先把转义符处理一下,就能尽可能少的避免一些清洗错误。
正则表达式也精简了。