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使用logging结合decorator模式实现优化日志输出的方法
Apr 16 Python
Python中shape计算矩阵的方法示例
Apr 21 Python
Python subprocess模块详细解读
Jan 29 Python
浅谈利用numpy对矩阵进行归一化处理的方法
Jul 11 Python
使用python判断你是青少年还是老年人
Nov 29 Python
利用ctypes获取numpy数组的指针方法
Feb 12 Python
Python Selenium 之数据驱动测试的实现
Aug 01 Python
python中struct模块之字节型数据的处理方法
Aug 27 Python
简单了解python数组的基本操作
Nov 26 Python
Python使用enumerate获取迭代元素下标
Feb 03 Python
python中如何进行连乘计算
May 28 Python
Python3.9.1中使用match方法详解
Feb 08 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调用Twitter的RSS的实现代码
2010/03/10 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
php约瑟夫问题解决关于处死犯人的算法
2015/03/23 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
php实现的生成排列算法示例
2019/07/25 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
javascript replace()正则替换实现代码
2010/02/26 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
Bootstrap基本插件学习笔记之标签切换(17)
2016/12/08 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
在python的类中动态添加属性与生成对象
2016/09/17 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
python实发邮件实例详解
2019/11/11 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
机电一体化自荐信
2013/12/10 职场文书
五好文明家庭事迹材料
2014/12/20 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
七年级作文之英语老师
2019/10/28 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
Redis的字符串是如何实现的
2021/10/24 Redis
各种货币符号快捷输入
2022/02/17 杂记