您好,登录后才能下订单哦!
今天小编给大家分享一下requests.session()获取Cookies的过程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
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
方式一
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
,这样没有什么不好,你开心就好~~~。
请求之前我们先清空Headers
,Cookies
内的信息
headers
中仅写入user-agent
,Cookies
为空
请求之后查看session
中Cookies
,得到响应端返回的cookies
以上就是“requests.session()获取Cookies的过程是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。