zoukankan      html  css  js  c++  java
  • 【转】python requests库添加自定义cookie的方法

    requests库是个很方便的爬虫,相关文档已经很详细了。
    不过我今天在爬网页时,有一个网站是在脚本中添加cookie的,但我向requests.cookies里添加cookie费了不少周折。尝试了多个方法,这些方法都各有一些缺点。最终找到一个完全符合需求的方法。今天尝试的各种方法如下:


    1. 类似操作dict


    s = requests.Session()
    s.cookies['cookie-name'] = 'cookie-value'
    可以添加cookie,不会清除原cookie
    缺点:不能设置path、domain等参数。

    2. requests.cookies.set() 函数

    s.cookies.set('cookie-name', 'cookie-value', path='/', domain='.abc.com')
    优点:不能设置path、domain等参数。
    缺点:会清除原有cookie。

    3. 网上有文章说可以发一次请求,把新的cookie加在请求中,然后就会自动把新的cookie和原有的cookie混合。但我试过后发现无效。

    4. requests.utils.add_dict_to_cookiejar(cj, cookie_dict)

    c = {'cookie-name' : 'cookie-value'}
    requests.utils.add_dict_to_cookiejar(s.cookies, c)
    缺点:不能设置path、domain等参数。

    最后经过仔细研究,终于找到 requests.cookies.update() 函数
    5. requests.cookies.update()

    c = requests.cookies.RequestsCookieJar()
    c.set('cookie-name', 'cookie-value', path='/', domain='.abc.com')
    s.cookies.update(c)
    终于完美解决了我的需求。
    ---------------------
    from:https://blog.csdn.net/tianking/article/details/51248941

  • 相关阅读:
    扒几个 3D 模型备用
    向 3D 世界迈出一小步
    为什么说使用 Linux 系统学习 OpenGL 更方便
    Windows 下的 Linux环境
    windows git 的扩展用法——其他linux命令
    Linux 环境变量
    powershell(或者windows terminal)中使用git
    QT无边框窗体——拦截windows消息实现
    QT工具——开发技巧与其他工具
    QT工具——国际化工具
  • 原文地址:https://www.cnblogs.com/xuan52rock/p/11334173.html
Copyright © 2011-2022 走看看