POST 请求
本文最后更新于 2024年7月18日 凌晨
POST 请求介绍
与 GET 请求不同,POST 请求将数据封装在请求体中,而不是在 URL 中传递。通常情况下,POST 请求用于向服务器提交表单数据、上传文件等操作。
使用场景
在写爬虫抓取数据的时候,我们不仅只使用 get 请求,在一些场景下还会遇到 post 请求,比如登录注册、参数需要传输大文本内容的时候
案例:模拟登录
对于一些需要登录才能访问的页面,我们该如何利用 Python 爬虫的方法去访问需要登录的页面呢
步骤1
通过抓包,找到登录接口
- 打开目标网页,点击登录
- 打开调试控制台
- 输入一组错误的账号密码,点击登录
- 在控制台看到登录的请求
- 查看登录接口的 URL 地址、请求参数
一般是在调试控制台的 Fetch 部分
步骤2
编写代码请求登录接口,传入正确的账号和密码
Cookie + Session 鉴权机制
Cookie
- cookie 是 Web 服务器保存在用户浏览器上的小文本文件,它可以包含有关用户的信息。无论何时用户访问到服务器,都会带上该服务器的 cookie 信息
- 一般 cookie 都是有有效期的, cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,就会被系统自动销毁
Session
- session 将数据保存在服务器中,服务器会为每个用户创建一条 session,用户访问服务器的时候需要拿着 sessionid 去表明自己的身份
Token 鉴权机制
判别鉴权机制
- 首先可以看 POST 的提交信息,如果是 FORM DATA,那么对应的就是 Cookie + Session 鉴权机制;如果不是 FORM DATA 的话,那么一般是 Token 鉴权机制
- 其次可以看 POST 请求的 URL 地址,如果 URL 地址与原网址相同,那么一般是 Cookie + Session 鉴权机制;如果请求的 URL 地址与原网址不同,那么一般是 Token 鉴权机制
针对 cookie + session 鉴权的网站模拟登录
- 传递账号和密码,进行登录
- 登录之后保存 cookie(返回时在响应头的 set-cookie 字段中)
- 请求其他的页面时,携带 cookie
针对 Token 鉴权的网站模拟登录
- 传递账号和密码,进行登录
- 登录之后保存 token(返回时在响应体中)
- 请求其他的页面时,携带 token
POST 请求
http://example.com/2024/07/18/pachong-5/