requests--Cookie设置

简介: requests--Cookie设置

前戏


有些页面需要登录才可以访问,而服务器是根据cookie来进行判断的,服务器拿到浏览器的cookie,然后再数据库里进行查询判断,如果校验通过,则服务器认为是登录过的,才有继续访问的权限,否则,服务器可能会返回到登录页面让你进行登录。


设置cookie


登录cookie = 登录后的cookies  -  登录前的cookies

想发送你的cookies到服务器,可以使用 cookies 参数:

import requests
url = 'http://httpbin.org/cookies'
cookies = dict(cookies_are='working')
r = requests.get(url, cookies=cookies)
print(r.text)

结果:

{
  "cookies": {
    "cookies_are": "working"
  }
}

Cookie 的返回对象为 RequestsCookieJar,它的行为和字典类似,但接口更为完整,适合跨域名跨路径使用。你还可以把 Cookie Jar 传到 Requests 中:

import requests
jar = 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"
  }
}

如果某个响应中包含一些 cookie,你可以快速访问它们:

import requests
url = 'http://example.com/some/cookie/setting/url'
r = requests.get(url)
print(r.cookies['example_cookie_name'])


实战


import requests
# 先打开登录首页,获取部分cookie
url = "https://passport.cnblogs.com/user/signin"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
}
r = requests.get(url, headers=headers, verify=False)
print(r.cookies)  # 添加前的cookies
# 添加登录需要的两个cookie
c = requests.cookies.RequestsCookieJar()
c.set('.CNBlogsCookie', 'xxx')  # 填抓包内容
c.set('.Cnblogs.AspNetCore.Cookies', 'xxx')  # 填抓包内容
r.cookies.update(c)  # 更新cookies
print(r.cookies)  # 添加后的cookies

相关文章
|
6月前
|
安全 PHP
从建站到拿站 -- PHP(Cookie设置)
从建站到拿站 -- PHP(Cookie设置)
44 0
|
3月前
|
存储
【Azure APIM】APIM 策略语句如何来设置多个Cookie值让浏览器保存
【Azure APIM】APIM 策略语句如何来设置多个Cookie值让浏览器保存
|
3月前
|
Java 应用服务中间件 nginx
【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录
【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录
|
3月前
|
JSON JavaScript 前端开发
Vue项目使用Cookie,以Json格式存入与读取Cookie,设置过期时间以及删除操作
这篇文章介绍了在Vue项目中如何使用JavaScript操作Cookie,包括设置、读取、设置过期时间以及删除Cookie的方法。
267 0
|
5月前
|
JavaScript API
蓝易云 - 如何使用CORS来允许设置Cookie
以上就是使用CORS来允许设置Cookie的方法。
32 2
|
5月前
|
JavaScript 前端开发 数据安全/隐私保护
JS中使用Cookie实现记住密码以及设置密码过期时间
JS中使用Cookie实现记住密码以及设置密码过期时间
99 0
|
存储 缓存 JSON
36.从入门到精通:CGI环境变量 GET和POST方法 GET方法 POST方法 CGI中使用Cookie Cookie设置 检索Cookie信息
36.从入门到精通:CGI环境变量 GET和POST方法 GET方法 POST方法 CGI中使用Cookie Cookie设置 检索Cookie信息
|
JavaScript
js设置、修改、获取、删除 cookie
js设置、修改、获取、删除 cookie
192 0
|
JSON 中间件 数据格式
解决scrapy设置cookie中间件时遇到的问题
解释COOKIES_ENABLED作用: * 当COOKIES_ENABLED是注释的时候scrapy默认没有开启cookie * 当COOKIES_ENABLED没有注释设置为False的时候scrapy默认使用了settings里面的cookie * 当COOKIES_ENABLED设置为True的时候scrapy就会把settings的cookie关掉,使用自定义cookie
371 6
|
6月前
|
存储 JavaScript PHP
什么是cookie,如何设置在浏览器页面关闭后清除cookie
什么是cookie,如何设置在浏览器页面关闭后清除cookie
382 0