url的组成
拿百度来说,我们在百度搜索python的时候他的url组成往往是这样的
https://www.baidu.com/s?tn=88093251_47_hao_pg&ie=utf-8&wd=python

协议
最前面的表示协议,就是图片中的1
除了http协议外,我们常见的协议还有
| 协议 | 端口号 |
|---|---|
| http | 80 |
| https | 443 |
| mysql | 3306 |
| oracle | 1521 |
| redis | 6379 |
| mongodb | 27017 |
等
主机名
就是图片中的2
路径
就是图片中的3
参数
就是图片中的4
他是一&链接键值对
其他
比如有的URL中还有#,他表示锚点
get请求
get的url
当我们在百度进行搜索的时候一般用的就是get请求,我们搜索西游记,看看他的路由情况
https://www.baidu.com/s?tn=88093251_47_hao_pg&ie=utf-8&wd=%E8%A5%BF%E6%B8%B8%E8%AE%B0
当我们进行粘贴的时候就会发现,西游记三个汉字进行了编码为%E8%A5%BF%E6%B8%B8%E8%AE%B0,这个我们应该怎么处理呢
编码
urllib.parse.quote(str)对于汉字进行编码urllib.parse.urlencode(dict)对于字典进行编码
汉字编码
import urllib.parse
print(urllib.parse.quote("西游记"))
打印
%E8%A5%BF%E6%B8%B8%E8%AE%B0
我们会发现他与上面的西游记编码是相同的
字典编码
假设有些路径的参数都是汉字如name=孙悟空&sex=男&addr=花果山,那么我们可以做如下处理
data = {
"name":"孙悟空",
"sex":"男",
"addr":"花果山"
}
print(urllib.parse.urlencode(data))
打印
name=%E5%AD%99%E6%82%9F%E7%A9%BA&sex=%E7%94%B7&addr=%E8%8A%B1%E6%9E%9C%E5%B1%B1
我们将这个参数拼接到get请求的url上面就可以了
版权声明:本文为youhebuke225原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。