了解requests.session()获取Cookies全过程

通过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()使用的是default_headers()(默认请求头),这里我们依然看不到print打印在终端的内容,所以继续ctrl+右击点击default_headers()。得到如图:
进入default_headers()OK! But it’s not over,这里我们还有User-Agentvalue没有看到,但是经过猜测我们不难得到default_user_agent()的内容就是python-requests/2.21.0

包装请求头,让他看起来更帅气

首先,了解对headers进行一个简单的增删改查操作
删改查
包装
包装Headers
包装我们的Headers

  1. 方式一
headers = {
            'Origin': 'https://***.com',
            'Host': '***.com',
            'Referer': 'https://**.com/,
            'User-Agent': 'Mozilla/5.0',
        }
session.headers.update(headers)#字典的更新方法        
  1. 方式二

换一种大家都在用的方式,在请求的时候添加headers参数即可:

response = session.get(url, headers=headers)

验证两种方式是否得到的效果一样

  1. 第一种方式
    one
  2. 第二种方式
    two
    结论两种方式在response端看到的效果等同,区别在于第一种方式session是永久的,而第二种常用的方式只是在请求的时候携带过去的,所以当我们查看session的时候为空,那么这就有一个问题,我们在后续的请求中任然需要带上headers=这个参数,似乎它并没有那么好?

这是在github上copy 的部分爬虫代码如下:

github连续带了两次Headers,这样没有什么不好,你开心就好~~~

cookies获取过程

  1. 请求之前我们先清空Headers,Cookies内的信息
  2. headers中仅写入user-agentCookies为空
  3. 请求之后查看sessionCookies,得到响应端返回的cookies
    如果看不到图片,请一定想办法看见!
  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以通过调用 `requests.session.cookies.clear()` 方法来清空 `requests.session` 对象中的所有 cookies。例如: ``` import requests # 创建一个 session 对象 session = requests.session() # 向 session 中添加 cookies session.cookies.set('cookie_name', 'cookie_value') # 清空 session 中的所有 cookies session.cookies.clear() ``` ### 回答2: 要清空`requests.session`中的cookies,可以使用`requests.session.cookies.clear()`方法。该方法会清空当前会话(session)中所保存的所有cookies。 示例代码如下所示: ```python import requests session = requests.session() # 执行请求,保存cookiessessionsession.get('http://example.com') # 清空session中的cookies session.cookies.clear() ``` 在上述示例中,首先创建了一个`requests.session`对象,然后执行了一个GET请求,并将返回的cookies保存到了session中。最后,通过调用`session.cookies.clear()`方法,清空了session中的cookies。 注意,`requests.session.cookies.clear()`只会清空当前session中的cookies,不会影响其他会话或全局cookies。如果需要清空全局cookies,可以使用`requests.cookies.clear()`方法。 ### 回答3: 可以通过使用requests.session对象的.cookies.clear() 方法来清空Session中的cookies。具体操作步骤如下: 1. 导入requests模块: `import requests` 2. 创建一个Session对象:`session = requests.session()` 3. 发送请求并保存cookies: `response = session.get(url)` 4. 清空cookies: `session.cookies.clear()` 5. 验证是否成功清空cookies: `print(session.cookies)` 这样,通过调用session.cookies.clear()方法,Session对象中的cookies就会被清空。当再次发送请求时,就不会携带之前保存的cookies信息了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值