python爬虫中文转成一个字符串类型的unicode字符串(%u)的问题
本文主要介绍某些爬虫在遇到
%u627E%u4E0A%u95E8
这种类似unicode编码的str
类型数据时,无法直接使用decode('unicode-escape')
方法来转成中文时的一个转码的解决方法。
例:
k后面的值即为搜索的关键字
value为
%u627E%u4E0A%u95E8
- 它只不过是将 \ (反斜杠) 换成了 %( 百分号)。
那么问题来了,我们如何将一个str类型的中文,转换成另一个str类型的%u627E%u4E0A%u95E8 编码呢?
一、中文编码成%u类型编码
- 将一段中文转成unicode编码
print('找来了'.encode('unicode-escape')) b'\\u627e\\u6765\\u4e86'
- 转换完成后的结果是一个bytes类型,我们将其转换为str类型
print('找来了'.encode('unicode-escape').decode()) \u627e\u6765\u4e86
-
再用
%
百分号替换\\
双反斜杠后,就得到了转码之后的unicode类型字符串(%u****)print('找来了'.encode('unicode-escape').decode().replace('\\','%')) %u627e%u6765%u4e86
二、unicode类型的字符串转换成中文
只需要将这三步给逆向回去,也就可以将一段unicode类型的str转换成中文了。
print('%u627e%u6765%u4e86'.replace('%','\\').encode().decode('unicode-escape'))
找来了
这篇文章pyhon3爬虫爬取飞卢网小说(仅供学习使用)飞卢小说 效果演示:
请输入小说的名字:找来了
https://b.faloo.com/l/0/1.html?t=1&k=%u627e%u6765%u4e86