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

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


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=壁纸

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 128,839评论 18 137
  • 前端开发者丨http请求 https:www.rokub.com 前言见解有限, 如有描述不当之处, 请帮忙指出,...
    麋鹿_720a阅读 10,170评论 11 30
  • 左脑,抽象脑和学术脑,负责逻辑、语言、数学、文字、推理和分析。左脑发达的人偏理性。 右脑,艺术脑和创造脑,负责图画...
    老鹰liu阅读 284评论 0 0
  • 时间是最好的良药 希望在很久很久以后 那颗心想你的时候再也不会疼
    callme痕阅读 391评论 0 50
  • <第五章 希望之路> 螺哥的眼前一片漆黑,只有墙角断裂的电线因为碰撞到金属墙壁而发出噼啪的火花. "这里应该是阿尔...
    螺哥Eric阅读 72评论 0 0
  • 问题描述 英文版太长就不贴了。大意是给出一组iterator,要求设计一个新的iterator,来按照顺序每次从一...
    akak18183阅读 73评论 0 0