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

【转】python requests库添加自定义cookie的方法的更多相关文章

  1. Python爬虫—requests库get和post方法使用

    目录 Python爬虫-requests库get和post方法使用 1. 安装requests库 2.requests.get()方法使用 3.requests.post()方法使用-构造formda ...

  2. Python——Requests库的开发者接口

    本文介绍 Python Requests 库的开发者接口,主要内容包括: 目录 一.主要接口 1. requests.request() 2. requests.head().get().post() ...

  3. Python:requests库、BeautifulSoup4库的基本使用(实现简单的网络爬虫)

    Python:requests库.BeautifulSoup4库的基本使用(实现简单的网络爬虫) 一.requests库的基本使用 requests是python语言编写的简单易用的HTTP库,使用起 ...

  4. python requests库学习笔记(上)

    尊重博客园原创精神,请勿转载! requests库官方使用手册地址:http://www.python-requests.org/en/master/:中文使用手册地址:http://cn.pytho ...

  5. 使用python requests库写接口自动化测试--记录学习过程中遇到的坑(1)

    一直听说python requests库对于接口自动化测试特别合适,但由于自身代码基础薄弱,一直没有实践: 这次赶上公司项目需要,同事小伙伴们一起学习写接口自动化脚本,听起来特别给力,赶紧实践一把: ...

  6. Python requests库的使用(一)

    requests库官方使用手册地址:http://www.python-requests.org/en/master/:中文使用手册地址:http://cn.python-requests.org/z ...

  7. 大概看了一天python request源码。写下python requests库发送 get,post请求大概过程。

    python requests库发送请求时,比如get请求,大概过程. 一.发起get请求过程:调用requests.get(url,**kwargs)-->request('get', url ...

  8. requests库下载图片的方法

    方法: 传入图片url,requests.get()方法请求一下,将源码以二进制的形式写在本地即可. 以前一直以为requests库中有特定的方法获取图片,类似urllib.request.urlre ...

  9. Python Requests库:HTTP for Humans

    Python标准库中用来处理HTTP的模块是urllib2,不过其中的API太零碎了,requests是更简单更人性化的第三方库. 用pip下载: pip install requests 或者git ...

随机推荐

  1. Scrapy 框架的使用

    Scrapy 框架的介绍 Scrapy 是一个基于Twisted的异步处理框架,是纯Python实现的爬虫框架,其架构清晰模块之间的耦合成都低,可扩展性极强,可以灵活完成各种需求.我们只需要定制开发几 ...

  2. p2.BTC-数据结构

    hash pointers:哈希指针,除了保存值的地址,还要存这整个区块的内容的hash值.这样就既能访问到值,还能确定访问的值有没有被篡改. 一 Blockchain Block chain is ...

  3. Python——数据类型公用功能

    1.索引 表示从哪里开始取值. 支持类型 str 列表 dict 不支持类型 int bool a= '1234567' print(a[1:])#指从哪开始读取,1为从1号元素开始.默认为0 pri ...

  4. mysql数据库备份,主从复制及半同步复制

    1.使用mysqldump备份数据库并通过备份及二进制日志还原数据(备份完后再写入数据,然后再删库) mysqldump -A --single-transaction -F --master-dat ...

  5. Andrew Ng机器学习 四:Neural Networks Learning

    背景:跟上一讲一样,识别手写数字,给一组数据集ex4data1.mat,,每个样例都为灰度化为20*20像素,也就是每个样例的维度为400,加载这组数据后,我们会有5000*400的矩阵X(5000个 ...

  6. 剑指Offer(三十三):丑数

    剑指Offer(三十三):丑数 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/baidu_31 ...

  7. 启动Vue项目,提示:Cannot find module 'webpack/bin/config-yargs'

    "webpack-dev-server": "^2.11.5"

  8. CH5E26 扑克牌

    题意 5E26 扑克牌 0x5E「动态规划」练习 描述 一副不含王的扑克牌由52张牌组成,由红桃.黑桃.梅花.方块4组牌组成,每组13张不同的面值.现在给定52 张牌中的若干张,请计算将它们排成一列, ...

  9. 关于docker的UnionFS系统原理

    docker镜像的结构就像花卷一样,是一层一层的,比如tomcat镜像,它有450M左右,但我们实际的tomcat却很小,为什么tomcat镜像那么大呢,是因为,tomcat镜像的最里面是kernel ...

  10. spring+mybatis通用dao层、service层的实现

    个人理解: 1.mybatis-spring.jar 提供了SqlSessionTemplate类该类可以对数据库进行CRUD操作(底层其实还是SqlSession) 2.我们可以集成SqlSessi ...