Python小记:cookiejar中的手动cookie管理

继上次通过phantomjs获取动态cookie后需要对同一网站搭建一个查询的接口,对于这种情况继续使用scrapy是肯定不现实的了,于是采用了urllib加上cookiejar的方式来进行实时查询接口的编写。

开始打算直接把动态生成的cookie直接带在header里面进行发送,但是由于本身传回cookie的存在,直接重写head会导致cookie不完整。于是采用在cookiejar中直接添加cookie字段,cookiejar的cookie添加十分繁琐,上代码

def getSession(e):
    print 'getSession'
    js = e.read()
    js = str(js).replace("<script>", '')
    js = js.replace("</script>", '')
    js = js.replace("document.cookie=dc", 'console.log(dc);phantom.exit()')
    f = open('getcookie.js', "w+")
    f.write(js)
    f.close()
    status, output = commands.getstatusoutput('phantomjs getcookie.js')
    cookiejar.set_cookie(make_cookie('__jsl_clearance', output.split(";")[0].split('=')[1]))

make_cookie函数的具体实现

def make_cookie(name, value):
    return cookielib.Cookie(
        version=0,
        name=name,
        value=value,
        port=None,
        port_specified=False,
        domain="court.gov.cn",
        domain_specified=True,
        domain_initial_dot=False,
        path="/",
        path_specified=True,
        secure=False,
        expires=None,
        discard=False,
        comment=None,
        comment_url=None,
        rest=None
    )

通过以上代码实现cookiejar的cookie的添加,直接通过字典添加cookie是不行的,cookiejar 中的cookie是以一个Cookie类型存在的,需要调用Cookie的构造函数生成的对应类型进行添加。

个人对于cookiejar不提供方便的添加cookie的方法表示非常不理解,不过管他呢,这里记一笔,以后注意

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,707评论 25 709
  • 面对贷前繁琐的审查工作,一部分资金使用者还是有较大的抵触情绪,不是抱怨手续复杂,就是抱怨门槛高,其实,真正优质的客...
    跨界跑者阅读 247评论 0 0
  • 我们所了解的微软或许只在于windows操作系统和office办公软件。但是我们如果只这样认为,那就大错特错了,微...
    网络小斐阅读 638评论 0 1
  • 现在是巴黎时间的晚上12点53分。睡意昏沉后脑袋格外清醒。 经过恐怖袭击后,一度放弃了继续游玩巴黎的念头,但耐不住...
    0054ba22d691阅读 191评论 1 0