全网云盘资源分享群

python爬虫中文转成一个字符串类型的unicode字符串(%u)的问题

本文主要介绍某些爬虫在遇到%u627E%u4E0A%u95E8这种类似unicode编码的str类型数据时,无法直接使用decode('unicode-escape')方法来转成中文时的一个转码的解决方法。

例: 

 

 k后面的值即为搜索的关键字

value为

%u627E%u4E0A%u95E8
  • 它只不过是将 \ (反斜杠) 换成了 %( 百分号)。

那么问题来了,我们如何将一个str类型的中文,转换成另一个str类型的%u627E%u4E0A%u95E8 编码呢?

一、中文编码成%u类型编码

  1. 将一段中文转成unicode编码
    print('找来了'.encode('unicode-escape'))
    
    b'\\u627e\\u6765\\u4e86'

  2. 转换完成后的结果是一个bytes类型,我们将其转换为str类型
    print('找来了'.encode('unicode-escape').decode())
    
    \u627e\u6765\u4e86
    

  3.  再用%百分号替换\\双反斜杠后,就得到了转码之后的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

posted @ 2021-08-05 18:53  颖火虫赵云  阅读(72)  评论(0编辑  收藏  举报  来源
|