【爬虫学习】基础篇4:urllib库的编码与解码

编码与解码

        初学朋友肯定会疑惑:为什么需要编码和解码?

        理由么,其实也不复杂,计算机语言或者说代码是西方老外发明的,他们当时根本没有考虑到咱们中国人会使用,所以代码全部都是英文。咱们在写代码的时候,尝尝会使用到中文的标题或者内容,这时就需要对中文汉字进行编码,将汉字转为特定的ASCII码,这样计算机才可以对汉字进行输出等处理。

urllib库的parse模块

        parse的中文翻译是"语法分析、句法分析"。汉字的编码和解码我们使用到的是urllib库的parse模块。

urlencode函数【编码函数】

        作用:把字典类型的数据转换为url编码的数据。

        示例代码如下:

# 导入urllib库的parse模块
from urllib import parse
# 先定义一个字典的变量
data = {'name':'贝克汉姆','age':45,'job':'足球运动员'}
# 将data变量进行编码:
qs = parse.urlencode(data)
# 打印编码后的data变量:
print(qs)

输出结果如下图:

        因为贝克汉姆和足球运动员是中文,所以在编码时这些汉字会转为url可以识别的ASCII码,这样就是一个完整的编码过程。 

        同时,不难发现,输出时字典的形式被转换为=的形式,例如age=45。这样转换其实也是便于我们在输入url的格式。

quote函数与unquote函数【编码函数】

        quote函数和urlencode函数起到的效果都是对汉字进行编码。

        它们两者之间的区别是作用的对象不同,quote函数的对象是字符串,而urlencode函数的对象是字典。与quote函数作用相反的为unquote函数,即把ASCII码解码为字符串。

name = '贝克汉姆'
print(parse.quote(name))

输出结果:%E8%B4%9D%E5%85%8B%E6%B1%89%E5%A7%86(贝克汉姆的ASCII码)

parse_qs函数【解码函数】

# 导入urllib库的parse模块
from urllib import parse
# 先定义一个字典的变量
data = {'name':'贝克汉姆','age':45,'job':'足球运动员'}
# 将data变量进行编码:
qs = parse.urlencode(data)
# 打印编码后的data变量:
print(qs)

# 对qs数据再进行解码:
print(parse.parse_qs(qs))

解码之后,还原为字典数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值