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中的__new__与__init__魔术方法理解笔记
Nov 08 Python
Python中使用SAX解析xml实例
Nov 21 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
Django REST为文件属性输出完整URL的方法
Dec 18 Python
Python反射用法实例简析
Dec 22 Python
Python网络编程之TCP与UDP协议套接字用法示例
Feb 02 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
Jul 22 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Aug 13 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
基于python实现破解滑动验证码过程解析
May 28 Python
ASP.NET Core中的配置详解
Feb 05 Python
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
Apr 14 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
PHP统一页面编码避免乱码问题
2015/04/09 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
js技巧--转义符"\"的妙用
2007/01/09 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
基于JavaScript实现在新的tab页打开url
2016/08/04 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
js实现下一页页码效果
2017/03/07 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
分析python切片原理和方法
2017/12/19 Python
Python函数中不定长参数的写法
2019/02/13 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
安德玛比利时官网:Under Armour比利时
2019/08/28 全球购物
UNIX命令速查表
2012/03/10 面试题
工作自荐信
2013/12/11 职场文书
项目开发计划书
2014/01/09 职场文书
男方父母婚礼答谢词
2014/01/25 职场文书
高级销售求职信
2014/02/21 职场文书
《乞巧》教学反思
2014/02/27 职场文书
《一个小村庄的故事》教学反思
2014/04/13 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书