了解requests.session()获取Cookies全过程
2020-04-01 18:35
816 查看
文章目录
通过requests.session()查看默认配置下请求头
import requests session = requests.session() print("默认配置下的请求头:",session.headers.items()) # 默认配置下的请求头: ItemsView({'User-Agent': 'python-requests/2.21.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'})"
我们可以看到在默认情况下,请求头的内容很机器,没有灵性。
如果大家使用的IDE是
Pycharm的话,
ctrl+右键点击session.headers的
headers查看源码。得到如图:
使用的是
default_headers()(默认请求头),这里我们依然看不到
ctrl+右击点击
default_headers()。得到如图:
OK! But it’s not over,这里我们还有
User-Agent的
value没有看到,但是经过猜测我们不难得到
default_user_agent()的内容就是
python-requests/2.21.0。
包装请求头,让他看起来更帅气
首先,了解对
headers进行一个简单的增删改查操作
包装
包装我们的Headers
- 方式一
headers = { 'Origin': 'https://***.com', 'Host': '***.com', 'Referer': 'https://**.com/, 'User-Agent': 'Mozilla/5.0', } session.headers.update(headers)#字典的更新方法
- 方式二
换一种大家都在用的方式,在请求的时候添加
headers参数即可:
response = session.get(url, headers=headers)
验证两种方式是否得到的效果一样
- 第一种方式
- 第二种方式
结论:两种方式在response
端看到的效果等同,区别在于第一种方式session是永久的,而第二种常用的方式只是在请求的时候携带过去的,所以当我们查看session的时候为空,那么这就有一个问题,我们在后续的请求中任然需要带上headers=
这个参数,似乎它并没有那么好?
这是在
github上copy 的部分爬虫代码如下:
连续带了两次
Headers,这样没有什么不好,你开心就好~~~。
cookies获取过程
- 请求之前我们先清空
Headers
,Cookies
内的信息 headers
中仅写入user-agent
,Cookies
为空- 请求之后查看
session
中Cookies
,得到响应端返回的cookies
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Python爬虫 —— 知乎之selenium模拟登陆获取cookies+requests.Session()访问+session序列化...
- Ajax中如何使用Session变量,Cookies可以用表单验证的方式获取并使用。
- 了解IHttpModule接口事件执行顺便 获取Session
- (asp.net session总为null得到解决)了解IHttpModule接口事件执行顺便 获取Session 和SQL
- easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)
- httpCookies 不需要用session来获取信息了,方便很多,也缓解服务器上的压力
- Asp.Net获取Session、Cookies、Application中所有的值
- 从一个小项目了解自动获取、提交网页数据、字符转换、自动注册的过程
- 了解IHttpModule接口事件执行顺便 获取Session
- python实战:将cookies添加到requests.session中实现淘宝的模拟登录
- 解决iframe,frame和框架丢失或获取不到session,cookies问题
- (asp.net session总为null得到解决)了解IHttpModule接口事件执行顺便 获取Session 和SQL
- MyBatis 入门到精通(一) 了解MyBatis获取SqlSession .
- 了解IHttpModule接口事件执行顺便 获取Session【转】
- 了解IHttpModule接口事件执行顺便 获取Session
- 了解IHttpModule接口事件执行顺便 获取Session
- hibernate5.0版本以后获取session操作数据库的过程
- 在requests库中可以定制会话级别的cookies,以保证整个通信过程中都可以使用到cookies
- 了解IHttpModule接口事件执行顺便 获取Session
- 了解IHttpModule接口事件执行顺便 获取Session