python requests 获取,设置cookie

27 篇文章 0 订阅

python requests 获取,设置cookie

首先是有一个能返回cookie的url, 然后在获取, 如下:

import requests
url = "https://fanyi.baidu.com"
res = requests.get(url)
print res.cookies
print type(res.cookies)

获取cookies是通过response的cookies 属性,可以通过res.cookies["cookie_name"]的方式获取。

并且需要注意的是,这个是一个RequestCookieJar的实例,也就是说,在requests的操作里的cookie一般都是包装到了这个类的实例:

看源码:(使用方式在后面

class RequestsCookieJar(cookielib.CookieJar, collections.MutableMapping):
  
    def get(self, name, default=None, domain=None, path=None):
        try:
            return self._find_no_duplicates(name, domain, path)
        except KeyError:
            return default
 
    def set(self, name, value, **kwargs):
       
        # support client code that unsets cookies by assignment of a None value:
        if value is None:
            remove_cookie_by_name(self, name, domain=kwargs.get('domain'), path=kwargs.get('path'))
            return
 
        if isinstance(value, Morsel):
            c = morsel_to_cookie(value)
        else:
            c = create_cookie(name, value, **kwargs)
        self.set_cookie(c)
        return c
 
    def iterkeys(self):
        
        for cookie in iter(self):
            yield cookie.name
 
    def keys(self):
        
        return list(self.iterkeys())
 
    def itervalues(self):
        
        for cookie in iter(self):
            yield cookie.value
 
    def values(self):
        
        return list(self.itervalues())
 
    def iteritems(self):
        
        for cookie in iter(self):
            yield cookie.name, cookie.value
 
    def items(self):
        
        return list(self.iteritems())

里面包括了很多的方法,可以根据需要进行使用,通常就是get, set,keys, itemitems等,和字典很像!

重点

如果需要在请求中添加cookie,可以实例化一个RequestCookieJar的类,然后把值set进去,最后在get,post方法里面指定cookies参数就行了,如下:

import requests
from requests.cookies import RequestsCookieJar
 
 
url = "http://fanyi.baidu.com/v2transapi"
 
cookie_jar = RequestsCookieJar()
cookie_jar.set("BAIDUID", "B1CCDD4B4BC886BF99364C72C8AE1C01:FG=1", domain="baidu.com")
 
res = requests.get(url, cookies=cookie_jar)
print res.status_code

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值