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'))

效果演示:

https://fsfc.fszj.foshan.gov.cn/loupan/xiaokong/view/69110/%25u5357%25u6D77%25u78A7%25u6842%25u56ED%25u5E7C%25u513F%25u56ED.html

你可能感兴趣的:(python爬虫中文转成一个字符串类型的unicode字符串(%u)的问题)