目标:
1:掌握搜索关键字 url 地址的组成部分
2:掌握向目标查询关键字地址发送请求的注意事项
3:urllib.parse.urlencode()方法详解
4:urllib.parse.quote()方法详解
5:掌握urllib.parse库内的 urlencode 方法以及 quote 方法的区别~
一:搜索关键字 url 地址的组成部分
组成:协议项+域名+数据库资源路径+查询参数
图示:

注意:其实很多查询参数都没有用,上面的 url 可简化为 https://www.baidu.com/s?wd=美女
二:向查询关键字地址服务器发送请求的注意事项
什么是查询关键字地址?:就是搜索相应关键字所对应的url地址,例如在百度上查询美女的url地址如下
https://www.baidu.com/s?wd=美女
向查询关键字地址服务器发送请求的注意事项:需要将url地址内中文 编码后 才可以向服务器发送请求
示例:
编码前URL地址:https://www.baidu.com/s?wd=美女
编码后URL地址:https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3
注意:编码后三个%对应一个中文字符,例如%E7%BE%8E就对应 美 这个中文字符
三:urllib.parse.urlencode()方法详解
功能:将查询参数内的中文进行编码,并返回编码后的查询参数(返回多个编码后的查询参数时默认返回 &)
语法:返回编码后查询参数 = urllib.parse.urlencode({查询参数1:待编码值1,查询参数2:待编码值2……….})
语法参数:
字典:字典内存放需要编码的查询参数,例如查询参数为 wd=美女 就这么写 {“wd”:“美女”}
语法参数返回值:
params = urllib.parse.urlencode({“wd”:“美女”}) params 就是 wd=%E7%BE%8E%E5%A5%B3
注意事项:urllib.parse.urlencode()方法只返回编码后的查询参数,并不是整个url地址,需要进行字符串拼接才能向目标url服务器发送请求
图示:

四:urllib.parse.quote()方法详解
功能:对查询参数内的中文进行编码,并且返回这个中文编码后的字符串
语法:编码后的中文字符串 = urllib.parse.quote(”查询参数中的中文关键字“)
例如:params = urllib.parse.quote(”美女“) params 就是 %E7%BE%8E%E5%A5%B3
方法参数:
查询参数内的中文:只是中文,没有相对应的wd 等
注意事项:这个方法只返回编码后的中文字符,连键都不返回需要自己写
图示:

五:urllib.parse库内的 urlencode 方法以及quote 方法的区别~
区别:
1:参数不同,urlencode参数为字典,quote参数是中文字符串
2:返回值不同,urldecode返回的是键与值,例如 wd=%E7%BE%8E%E5%A5%B3 ,quote方法返回的只有值,例如 %E7%BE%8E%E5%A5%B3
