用html框架做网站,seo招聘的关键词,学校专业建设备案网站,网站开发建设兼职一、requests背景
Requests 继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池#xff0c;支持使用cookie保持会话#xff0c;支持文件上传#xff0c;支持自动确定响应内容的编码#xff0c;支持国际化的 URL 和 POST 数据自动编码。
二、requests安装
利用p…一、requests背景
Requests 继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池支持使用cookie保持会话支持文件上传支持自动确定响应内容的编码支持国际化的 URL 和 POST 数据自动编码。
二、requests安装
利用pip安装 $ pip install requests
三、requests使用
GET请求
1.基本的GET的请求 response requests.get(http://www.baidu.com/) #也可以这样写 response requests.request(get,http://www.baidu.com/)
2.添加headers 和 params
如果想添加 headers可以传入headers参数来增加请求头中的headers信息。如果要将参数放在url中传递可以利用 params 参数。 key {key: CC} headers { User-Agent: Mozilla/5.0} response requests.get(http://www.baidu.com/s?, paramskey, headersheaders) print(response.text)# 查看响应内容response.text 返回的是Unicode格式的数据 print(response.content)# 查看响应内容response.content返回的字节流数据 print(response.status_code)# 查看响应码 如果你想取文本可以通过response.text如果想取图片/文件则可以使用response.content。 POST方法
1.基本的POST的请求
response requests.post(http://www.baidu.com/,data data)2.body带参数 formdata { type: AUTO, doctype: json, key: www, ue: UTF-8, } url http://auto-installment/v1/loan-credit-check response requests.post(url,data data,headersheaders) print(response.text)#显示返回结果 print(response.json())# 如果是json文件可以直接显示 注意 打印的结果出现中文乱码使用json.dupms(response, ensure_asciiFalse))解决 Session
一般利用Session在跨请求的时候保持某些参数比如实现登录后才能访问其他页面 # 1. 创建session对象可以保存Cookie值 session requests.session() # 2. 需要登录的用户名和密码 data {username: mxxxx, password: 1233444} # 3. 发送附带用户名和密码的请求并获取登录后的Cookie值保存在ssion里 session.post(https://www.jianshu.com/sign_in, datadata) # 4. ssion包含用户登录后的Cookie值可以直接访问那些登录后才可以访问的页面 response session.get(https://www.jianshu.com/writer#/)
注意事项 1.在使用requests去请求一个接口时出现报错的情况但是这个接口本身却没有问题。这是因为接口的请求参数有两种情况简单类型(一般少于3个和复杂对象类型。 解决方法在headers中定义一下这两种参数的类型 简单类型headers{Content-Type: application/x-www-form-urlencoded} 复杂对象类型headers{Content-Type:application/json} 2.某些HTTPS请求存在 SSL证书验证 解决方法response requests.get(https://www.baidu.com/, verifyFalse) 四、requests扩展
1.requests请求失败后增加重试机制(若失败将会重试3次) request_retry requests.adapatrs.HTTPAdapaters(max_retries3 session.mount(https://,request_retry) 2.使用grequests实现异步请求 urls [ http://www.url1.com, http://www.url2.com, http://www.url3.com, http://www.url4.com, http://www.url5.com, ] resp (grequests.get(u) for u in urls) grequests.map(resp) 3.自定义cookies
我们使用Session实例来保持请求之间的cookies但是有些特殊情况需要使用自定义的cookies 我们使用Session实例来保持请求之间的cookies但是有些特殊情况需要使用自定义的cookies # 自定义cookies cookie {guid:5BF0FAB4-A7CF-463E-8C17-C1576fc7a9a8,uuid:3ff5f4091f35a467} session.post(http://, cookiescookie)
4.统计一个API请求花费的时间
session.get(url).elapsed.total_seconds() 5.设置请求超时
session.get(url, timeout15)6.文件上传
Requests利用files作为参数模拟提交文件数据 file {file:open(test.bmp,rb)} #rb表示用二进制格式打开指定目录下的文件且用于只读 r requests.post(http://,filesfile) print(r.text 总结
感谢每一个认真阅读我文章的人
作为一位过来人也是希望大家少走一些弯路如果你不想再体验一次学习时找不到资料没人解答问题坚持几天便放弃的感受的话在这里我给大家分享一些自动化测试的学习资源希望能给你前进的路上带来帮助。 软件测试面试文档
我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。 视频文档获取方式 这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。