【python实践】之URL及其参数处理

真正的稳定,是自己不断成长,不断寻找新的空间。与其要稳定,不如开始拥抱这个变化的时代,让自己准备好。


【python实践】之URL及其参数处理_第1张图片
python实践

【写在前面】:
我们知道接口测试时重点是接口请求参数和组合形式,在之前的文章中我们提到接口请求参数的分析和自动生成,之前本人是自己写方法来处理这些数据,后来发现python本身就自带参数的拆分和组合,真是“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”。
【材料】:
参考材料 https://cuiqingcai.com/5508.html

【方法】:
1、parse_qs() #将get请求url后的参数转换为字典
举例如下:

from urllib.parse import parse_qs
query = 'name=germey&age=22'
print(parse_qs(query))

运行结果如下:

{'name': ['germey'], 'age': ['22']}

2、parse_qsl() #将get请求url后的参数将参数转化为元组组成的列表
举例如下:

from urllib.parse import parse_qsl
query = 'name=germey&age=22'
print(parse_qsl(query))

运行结果如下:

[('name', 'germey'), ('age', '22')]

3、urlencode() #构造GET请求参数
举例如下:

from urllib.parse import urlencode
params = {
    'name': 'germey',
    'age': 22
}
base_url = 'http://www.baidu.com?'
url = base_url + urlencode(params)
print(url)

运行结果如下:

http://www.baidu.com?name=germey&age=22

4、urlsplit() #拆分url
举例如下:

from urllib.parse import urlsplit
result = urlsplit('http://www.baidu.com/index.html;user?id=5&type=test')
print(result)

运行结果如下:

SplitResult(scheme='http', netloc='www.baidu.com', path='/index.html;user', query='id=5&type=test', fragment='')

返回结果是SplitResult,它其实也是一个元组类型,既可以用属性获取值,也可以用索引来获取。示例如下:

print(result.query, result[0])

运行结果如下:

id=5&type=test http

5、quote() #将内容转化为URL编码的格式。URL中带有中文参数时,有时可能会导致乱码的问题,此时用这个方法可以将中文字符转化为URL编码.
举例如下:

from urllib.parse import quote
keyword = '壁纸'
url = 'https://www.baidu.com/s?wd=' + quote(keyword)
print(url)

运行结果如下:

https://www.baidu.com/s?wd=%E5%A3%81%E7%BA%B8

6、unquote() #进行URL解码
举例如下:

from urllib.parse import unquote
url = 'https://www.baidu.com/s?wd=%E5%A3%81%E7%BA%B8'
print(unquote(url))

运行结果如下:

https://www.baidu.com/s?wd=壁纸

你可能感兴趣的:(【python实践】之URL及其参数处理)