url解码
2018-11-09 本文已影响0人
MA木易YA
在爬虫或者python的一些文件下载过程中经常碰到的一个问题就是对url进行编码和解码,python提供了很方便的接口进行调用。
- url中的query带有特殊字符(不是url的保留字)时需要进行编码。
- 当url中带有汉字时,需要特殊的处理才能正确编码,以下都只针对这种情形,当然也适用于纯英文字符的url。
小编在今天的项目过程中就遇到了这样的问题,因为url里面涉及到中文字段,一直会显示成unicode形式,试过encode、decode各种方法、给html设置头属性、给BeautifulSoup爬取的时候指定编码都不行,后来在万能的网友的提醒下知道是url编码方面的问题,然后去了解这个模块,但是很多方法urllib下已经没有了,比如查询方法
也是几番挣扎,最后在群内某大佬的指点下学习到这个方法,普及给大家
from urllib.parse import unquote
src = "https://maya-music.oss-cn-beijing.aliyuncs.com/%E9%BB%84%E8%80%80%E6%98%8E%20-%20%E6%9A%97%E6%B6%8C%28Live%29%20-%20live.mp3"
print(src)
#*****输出*****
https://maya-music.oss-cn-beijing.aliyuncs.com/%E9%BB%84%E8%80%80%E6%98%8E%20-%20%E6%9A%97%E6%B6%8C%28Live%29%20-%20live.mp3
src_new = unquote(src, 'utf-8')
print(src_new)
#*****输出*****
https://maya-music.oss-cn-beijing.aliyuncs.com/黄耀明 - 暗涌(Live) - live.mp3
关于更多的url编码解码的问题大家可以具体去看看urllib库相关的模块,这里只是给大家普及一个小方法