python编程之requests在网络请求中添加cookies参数方法详解


Posted in Python onOctober 25, 2017

哎,好久没有学习爬虫了,现在想要重新拾起来。发现之前学习爬虫有些粗糙,竟然连requests中添加cookies都没有掌握,惭愧。废话不宜多,直接上内容。

我们平时使用requests获取网络内容很简单,几行代码搞定了,例如:

import requests 
res=requests.get("https://cloud.flyme.cn/browser/index.jsp") 
print res.content

你没有看错,真的只有三行代码。但是简单归简单,问题还是不少的。

首先,这里的请求只是get方法,并且没有解决cookies的问题。

然后就是这里并没有解决乱码的问题。(乱码是python中的变态点)其实,在requests的get方法中添加cookies的方法不难 可以这样子:

res=requests.get("https://cloud.flyme.cn/browser/index.jsp",cookies=cookies)

我们所面临的问题是,如何构造这里的cookies。

这里的cookies是一个字典格式的数据。

平时我们浏览网页的时候,在审查元素中可以查看到所访问网页的cookies内容,大都是这样子的:

sn_openNetBySms=%23810EBMA3TE53; sn_map=810EBMA3TE53; DSESSIONID=f1987887-3d1d-4a85-ad75-c6270e588290; JSESSIONID=; _uid=; _keyLogin=; _rmtk=; _uticket=ns_0393027c2f9f686e3499e8ebb8d1d622; _ckk=ns_397a592791064029bf1336eff1cf516e; ucuid=8a135520affa423584307f6e2c210f02; _domain=cloud.flyme.cn; _islogin=true; lang=zh_CN; JSESSIONID=1gmfzynp0ns6s1u6a92xkqgi6q

天那,这是人看的吗?不是。这是经过加密处理后的数据。同样,我们可以将加密后的数据传递到get方法的cookies参数中,服务器会自动将加密后的数据进行解密,再检查数据的正确性。

至于,如何查看所访问网页的cookies内容,可以使用浏览器的审查功能,F12或者右击审查(Chrome)打开。在network中查看链接的Headers内容。另外,也可以使用软件抓包查看,如Fiddler web Debugger。

这里假设获取到了cookies的内容,我们可以保存到本地TXT文件中(直接把cookies的内容粘贴进去即可),例如test.txt文件。
然后,

f=open(r'test.txt','r')#打开所保存的cookies内容文件 
cookies={}#初始化cookies字典变量 
for line in f.read().split(';'):  #按照字符:进行划分读取 
  #其设置为1就会把字符串拆分成2份 
  name,value=line.strip().split('=',1) 
  cookies[name]=value #为字典cookies添加内容

这时候我们将cookies添加到get方法中:

res=requests.get("https://cloud.flyme.cn/browser/index.jsp",cookies=cookies)

这时候获取到的res.content中就是我们将cookies信息添加到get中后访问网页所获取的内容。

总结

以上就是本文关于python编程之requests在网络请求中添加cookies参数方法详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:python正则表达式re之compile函数解析、Python_LDA实现方法详解、Python探索之修改Python搜索路径等,如有不足之处,欢迎留言讨论。感谢朋友们对本站的支持!

Python 相关文章推荐
Python+Django在windows下的开发环境配置图解
Nov 11 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
Python AES加密模块用法分析
May 22 Python
Python实现的自定义多线程多进程类示例
Mar 23 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
Jun 27 Python
Python字典创建 遍历 添加等实用基础操作技巧
Sep 13 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
Apr 01 Python
使用Python实现跳一跳自动跳跃功能
Jul 10 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
python迭代器常见用法实例分析
Nov 22 Python
python实现二分类和多分类的ROC曲线教程
Jun 15 Python
python request 模块详细介绍
Nov 10 Python
Python探索之pLSA实现代码
Oct 25 #Python
python正则表达式re之compile函数解析
Oct 25 #Python
Python2和Python3中print的用法示例总结
Oct 25 #Python
Python_LDA实现方法详解
Oct 25 #Python
python+mongodb数据抓取详细介绍
Oct 25 #Python
python装饰器实例大详解
Oct 25 #Python
Python3 模块、包调用&路径详解
Oct 25 #Python
You might like
基于mysql的bbs设计(五)
2006/10/09 PHP
PHP实现采集程序原理和简单示例代码
2007/03/18 PHP
php获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
php中异常处理方法小结
2015/01/09 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
图片自动缩小 点击放大
2008/07/07 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
如何获取网站icon有哪些可行的方法
2014/06/05 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
JS获取鼠标选中的文字
2016/08/10 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
js常用DOM方法详解
2017/02/04 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
nodejs对项目下所有空文件夹创建gitkeep的方法
2019/08/02 NodeJs
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
python异常触发及自定义异常类解析
2019/08/06 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
Python 调用 ES、Solr、Phoenix的示例代码
2020/11/23 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
项目考察欢迎辞
2014/01/17 职场文书
婚礼父母致辞
2015/07/28 职场文书
使用python如何删除同一文件夹下相似的图片
2021/05/07 Python