您的位置:首页 > 产品设计 > UI/UE

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

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

首先,了解对

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. 第一种方式
  2. 第二种方式

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

这是在

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

连续带了两次

Headers
,这样没有什么不好,你开心就好~~~

cookies获取过程

  1. 请求之前我们先清空
    Headers
    ,
    Cookies
    内的信息
  2. headers
    中仅写入
    user-agent
    Cookies
    为空
  3. 请求之后查看
    session
    Cookies
    ,得到响应端返回的
    cookies

  • 点赞
  • 收藏
  • 分享
  • 文章举报
傻子丶疯子 发布了10 篇原创文章 · 获赞 0 · 访问量 539 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐