requests库

一、requests库安装
1.1 安装

  • 方法1
    pip install requests从国外网站下载库安装

  • 方法2
    pip installrequests -i 镜像地址 镜像地址网站: 豆瓣镜像:https://pypi.douban.com/simple/ 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学:http://pypi.hustunique.com/ 山东理工大学:http://pypi.sdutlinux.org/

1.2 查验
pip list列表查看,能看到安装的库名,说明安装成功 pip show 库名查询库的版本及其他相关信息。说明安装成功

1.3 http请求方式
resp = requests.请求方法(url='URL地址', params={k:v}, headers={k:v}, data=https://www.it610.com/article/{k:v}, json={k:v}, cookies='cookie数据(如:令牌)') 请求方法: get请求 - get方法 post请求 - post方法 put请求 - put方法 delete请求 - delete方法url:要访问的地址- string类型 params:查询参数- 字典 headers:请求头- 字典 data:表单 格式请求体数据- 字典- tpshop商城项目 json:json 格式请求体数据- 字典- ihrm项目cookies:用来传递cookies 【了解】resp:代表响应结果。

二、 Cookie
  • cookie 是工程师,针对 http协议 是无状态这一特征,设计的一种技术。
  • cookie 将数据保存在浏览器端。默认存储空间大小为 4k(可以修改)。
  • cookie 中的数据,用户和随意获取,没有安全性可言。
  • cookie 中存放的数据类型,受浏览器限制。
  • cookie 中大多存放于网络通信相关的不敏感数据信息。提高访问速度。如:用户名、登录状态等。
2.1 Cookie+Session认证方式 校验用户身份的方法
  • 令牌校验
  • cookie+session
    requests库
    文章图片
【requests库】eg:完整实现某商城登录,并获取 “我的订单” 页面数据。
# 导包 import requests # 发送获取验证码 get 请求,指定url, 获取响应结果 resp1 = requests.get(url="http://xxxxxx/index.php?m=Home&c=user&a=verify") # 从响应结果中,提取cookie值 my_cookie = resq1.cookies # 发送登录post请求,携带cookie值,获取结果 resp2 = requests.post(url="http://xxxxxxxxx/index.php?m=Home&c=User&a=do_login", data=https://www.it610.com/article/{"username": "13812345678", "password": "123456", "verify_code": "8888"}, cookies=my_cookie ) # 打印,查看登录结果 print("登录结果为:", resp2.json())# 发送查看我的订单get请求,携带cookie值,获取结果 resp3 = requests.get(url="http://xxxxxxxx/Home/Order/order_list.html", cookies=my_cookie)# 打印,查看我的订单页面 print(“我的订单页面”, resp3.text)

三、 Session(会话)
3.1 概念
从客户端登录服务器开始,直到客户端退出登录,所产生的所有通信数据,保存在 session中

3.2 特征
- **session 将数据存在服务器端** - **session 使用服务器存储空间,没有大小限制。** - **session 支持的数据类型,受服务器主机影响。几乎支持所有数据类型。** - **session 中的数据,大都采用 加密、转码存储。安全性较高。**

3.3 结论 Session自动管理Cookie:原因,cookie中的数据,都是由 session 提供的。
3.4 案例 eg:用session 实现登录商城
步骤:
1. 创建 session 实例。session = requests.Session()** 2. 使用 session 实例 发送 获取验证码 get 请求。( 不需要提取 cookie ) 3. 使用 同一个session 实例 发送 登录 post 请求。( 不需要携带 cookie )

# 1. 导包 import requests# 2. 创建 session 实例 session = requests.Session()# 3. 借助 session实例,发送 获取验证码 get请求,指定url(不需要提取cookie) session.get(url="http://xxxxxxxx/index.php?m=Home&c=User&a=verify")# 4. 借助 同一个session实例,发送 登录 post请求,指定 url、请求头、请求体(不需要携带cookie) resp2 = session.post(url="http://xxxxxxxxxx/index.php?m=Home&c=User&a=do_login", data=https://www.it610.com/article/{"username": "13812345678", "password": "123456", "verify_code": "8888"}) print("登录结果:", resp2.json())

四、 Cookie 和 Session 区别
  1. 数据存储位置:
    • Cookie 存储在 浏览器端
    • Session 存储在 服务器端
  2. 安全性:
    • Cookie 直接存储在浏览器,可以任意获取,没有安全性可言。
    • Session 存储在 服务器端,采用 加密、转码形式存储数据,安全性较高。
  3. 数据类型
    • Cookie 直接存储在浏览器,支持测试数据类型受浏览器限制
    • Session 存储在 服务器端,服务器就是一台主机。因此几乎支持所有的数据类型。
  4. 大小:
    • Cookie 默认大小 4k(可调)
    • Session 直接使用服务器存储。没有大小限制。

    推荐阅读