时间:2021-05-22
cookie并不陌生,与session一样,能够让http请求前后保持状态。与session不同之处,在于cookie数据仅保存于客户端。requests也提供了相应到方法去处理cookie。
在python requests模块-session中,我们知道了requests中的session对象能够在请求之间保持cookie,它极大地方便了我们去使用cookie。当我们想设置方法级别中的请求时,可以如下面示例一样操作。
import requestss = requests.session()# 第一步:发送一个请求,用于设置请求中的cookiescookies = dict(cookies_are='cookie1')# tips: http://httpbin.org能够用于测试http请求和响应r1 = s.get(url='http://httpbin.org/cookies', cookies=cookies)print(r1.text)# 第二步:发送一个请求,用于再次设置请求中的cookiescookies = dict(cookies_are='cookie2')r2 = s.get(url='http://httpbin.org/cookies', cookies=cookies)print(r2.text)运行结果
# r1.text{ "cookies": { "cookies_are": "cookie1" }}# t2.text{ "cookies": { "cookies_are": "cookie2" }}从结果中可以看出,该方法让cookie只作用了单个请求,因为方法级别的参数不会被跨请求保持,这是requests中session对象的机制,这里不再赘述。那么,如果我们想跨请求保持cookie呢?这里依旧可以应用session对象的跨请求机制,方法如下:
import requestss = requests.session()s.cookies.update({'cookies_are': 'cookie'})r = s.get(url='http://httpbin.org/cookies')print(r.text)值得一提的是,除了直接用字典去赋值cookie之外,requests还提供了RequestsCookieJar对象供我们使用,它的行为类似字典,但接口更为完整,适合跨域名跨路径使用。来看一个官方文档中的示例。
import requestsjar = requests.cookies.RequestsCookieJar()jar.set('tasty_cookie', 'yum', domain='httpbin.org', path='/cookies')jar.set('gross_cookie', 'blech', domain='httpbin.org', path='/elsewhere')url = 'http://httpbin.org/cookies'r = requests.get(url, cookies=jar)print(r.text)运行结果
{ "cookies": { "tasty_cookie": "yum" }}从结果中,可以看出我们利用RequestsCookieJar对象,达到了根据不同请求路径,发送不同cookie的效果,进一步增加了操作cookie的灵活性。
参考文档
https://github.com/psf/requests/blob/master/requests/cookies.py
https://requests.readthedocs.io/en/master/user/quickstart/#cookies
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在python中我们可以使用requests模块来实现调用远程接口一:安装requests模块pipinstallrequests二:使用requests模块实
本文研究的主要是Python使用requests及BeautifulSoup构建一个网络爬虫,具体步骤如下。功能说明在Python下面可使用requests模块
1、Requests模块说明Requests是使用Apache2Licensed许可证的HTTP库。用Python编写,真正的为人类着想。Python标准库中的
Pythonrequests模块 requests模块是我们使用的python爬虫模块可以完成市场进80%的爬虫需求。安装pipinstallrequests
本文实例讲述了Python爬虫DNS解析缓存方法。分享给大家供大家参考,具体如下:前言:这是Python爬虫中DNS解析缓存模块中的核心代码,是去年的代码了,现