网址url中的百分号是什么编码以及如何用python实现url编码

相信大家在玩爬虫的时候,经常需要自己去批量构建url,但是有的时候网站中作为参考的同类型url却包含一串百分号的乱码,让我们自己在构建的时候无从下手。这一篇博客就来一起看看这些百分号到底是什么东西。

问题描述

今天在爬虫的时候,需要构建的一个url需要附加搜索内容,例如爬取搜索内容为“零食 京东超市”的url,如果原样输出应该是

https://so.m.jd.com/ware/search.action?keyword=零食 京东超市

但是实际的url却是

https://so.m.jd.com/ware/search.action?keyword=%E9%9B%B6%E9%A3%9F%20%E4%BA%AC%E4%B8%9C%E8%B6%85%E5%B8%82

可以看出这里是对搜索的中文内容进行了某种编码。

为什么要编码?

现实世界的各种文字,汉字也好,英文也好,在计算机中都是二进制存储。因为各个国家的存储编码标准不统一,英文用ASCII,中文有GB,导致的结果就是同一个文件,在不同标准的电脑上有的能正常显示有的会乱码。所以后来ISO就规定大家都用UNICODE来统一进行编码,不管什么字符都用固定长度的字节来表示。现在我们的电脑和服务器使用的都是UNICODE编码来存储内容

因为要对全球所有文字都囊括,所以一个UNICODE的字符会很长,这样势必就会造成巨大的浪费。例如英文本来一个字节就能表示一个字符的现在白白浪费高位的几个字节。这也是为什么之前UNICODE流行不起来的原因。

后来为了解决这种浪费的问题&

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值