Python获取到&#x5c0f;&#x8bf4这样编码怎么转义,,<dt>学科主题:</d
Python获取到小说这样编码怎么转义,,学科主题:<dt>学科主题:</dt> <dd><a href="openlink.php?keyword=%E9%95%BF%E7%AF%87%E5%B0%8F%E8%AF%B4">长篇小说</a>-中国-当代</dd> </dl> <dl class="booklist"> <dt>中图法分类号:</dt> <dd><a href="openlink.php?coden=I247.5">I247.5</a></dd> </dl> <dl class="booklist"> <dt>提要文摘附注:</dt> <dd>小说中的主人公,正是因为当年盗墓的爷爷人赘杭州而身在杭州,开了一家小的古董铺子,守护着那群长沙土夫子从古墓不知名怪物捭中拼命抢出的战国帛书……</dd> </dl>
如何解决?
这个是 charref, HTML 的解析库都可以处理好, 不需要手工处理.
Python 标准库有 HTMLParser (html.parser in Python 3)
第三方库推荐 BeautifulSoup
# tested under python3.4def convert(s): s = s.strip('&#x;') # 把'长'变成'957f' s = bytes(r'\u' + s, 'ascii') # 把'957f'转换成b'\\u957f' return s.decode('unicode_escape') # 调用bytes对象的decode,encoding用unicode_escape,把b'\\u957f'从unicode转义编码解码成unicode的'长'。具体参见codecs的文档print(convert('长')) # => '长'
全篇替换
import reprint(re.sub(r'&#x....;', lambda match: convert(match.group()), ss))
全文替换后的结果:
<dt>学科主题:</dt> <dd><a href="openlink.php?keyword=%E9%95%BF%E7%AF%87%E5%B0%8F%E8%AF%B4">长篇小说</a>-中国-当代</dd> </dl> <dl class="booklist"> <dt>中图法分类号:</dt> <dd><a href="openlink.php?coden=I247.5">I247.5</a></dd> </dl> <dl class="booklist"> <dt>提要文摘附注:</dt> <dd>小说中的主人公,正是因为当年盗墓的爷爷人赘杭州而身在杭州,开了一家小的古董铺子,守护着那群长沙土夫子从古墓不知名怪物捭中拼命抢出的战国帛书……</dd> </dl>
# for python2.7def convert(s): return ''.join([r'\u', s.strip('&#x;')]).decode('unicode_escape')ss = unicode(ss, 'gbk') # convert gbk-encoded byte-string ss to unicode stringimport reprint re.sub(r'&#x....;', lambda match: convert(match.group()), ss)
编橙之家文章,
<dt>学科主题:</dt> <dd><a href="openlink.php?keyword=%E9%95%BF%E7%AF%87%E5%B0%8F%E8%AF%B4">长篇小说</a>-中国-当代</dd> </dl> <dl class="booklist"> <dt>中图法分类号:</dt> <dd><a href="openlink.php?coden=I247.5">I247.5</a></dd> </dl> <dl class="booklist"> <dt>提要文摘附注:</dt> <dd>小说中的主人公,正是因为当年盗墓的爷爷人赘杭州而身在杭州,开了一家小的古董铺子,守护着那群长沙土夫子从古墓不知名怪物捭中拼命抢出的战国帛书……</dd> </dl>
如何解决?
这个是 charref, HTML 的解析库都可以处理好, 不需要手工处理.
Python 标准库有 HTMLParser (html.parser in Python 3)
第三方库推荐 BeautifulSoup
# tested under python3.4def convert(s): s = s.strip('&#x;') # 把'长'变成'957f' s = bytes(r'\u' + s, 'ascii') # 把'957f'转换成b'\\u957f' return s.decode('unicode_escape') # 调用bytes对象的decode,encoding用unicode_escape,把b'\\u957f'从unicode转义编码解码成unicode的'长'。具体参见codecs的文档print(convert('长')) # => '长'
全篇替换
import reprint(re.sub(r'&#x....;', lambda match: convert(match.group()), ss))
全文替换后的结果:
<dt>学科主题:</dt> <dd><a href="openlink.php?keyword=%E9%95%BF%E7%AF%87%E5%B0%8F%E8%AF%B4">长篇小说</a>-中国-当代</dd> </dl> <dl class="booklist"> <dt>中图法分类号:</dt> <dd><a href="openlink.php?coden=I247.5">I247.5</a></dd> </dl> <dl class="booklist"> <dt>提要文摘附注:</dt> <dd>小说中的主人公,正是因为当年盗墓的爷爷人赘杭州而身在杭州,开了一家小的古董铺子,守护着那群长沙土夫子从古墓不知名怪物捭中拼命抢出的战国帛书……</dd> </dl>
# for python2.7def convert(s): return ''.join([r'\u', s.strip('&#x;')]).decode('unicode_escape')ss = unicode(ss, 'gbk') # convert gbk-encoded byte-string ss to unicode stringimport reprint re.sub(r'&#x....;', lambda match: convert(match.group()), ss)
编橙之家文章,
相关内容
- python -m参数 怎么使用,有什么作用,python-m,平时自己安
- 请问Python Gunicorn是如何配置文件部署的,,通常用 Ngin
- python的MySQLdb包rollback创建create语句不好用,mysqldbrollb
- 关于循环计算顺序的问题while if else是如何工作的,wh
- Python sqlalchemy框架关联对象操作问题,pythonsqlalchemy,本来
- python PyQt4导入错误ImportError: No module named pyqt4,pyqt4imp
- Python多线程数据库访问类安全性问题,python多线程,在用
- 求用Python将网站网页部分内容保存为图片的方法,,就是
- Python判断变量类型isinstance()与type()不同之处是什么?,
- 《python核心编程》复数取余的问题,,在看《python核心编
评论关闭