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以环状形式组合排列图片并输出的方法
Mar 17 Python
python dict.get()和dict['key']的区别详解
Jun 30 Python
Python SqlAlchemy动态添加数据表字段实例解析
Feb 07 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
Jun 13 Python
python 遍历目录(包括子目录)下所有文件的实例
Jul 11 Python
python实现统计文本中单词出现的频率详解
May 20 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 Python
Tensorflow实现在训练好的模型上进行测试
Jan 20 Python
Python drop方法删除列之inplace参数实例
Jun 27 Python
Python scrapy爬取小说代码案例详解
Jul 09 Python
pycharm 实现复制一行的快捷键
Jan 15 Python
Python操作Excel的学习笔记
Feb 18 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在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
jquery访问ashx文件示例代码
2014/08/11 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
VueRouter导航守卫用法详解
2017/12/25 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
[01:30]我们共输赢 完美世界城市挑战赛开启全新赛季
2019/04/19 DOTA
Python计算程序运行时间的方法
2014/12/13 Python
Python中字符编码简介、方法及使用建议
2015/01/08 Python
详解Python中dict与set的使用
2015/08/10 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
python转化excel数字日期为标准日期操作
2020/07/14 Python
django使用graphql的实例
2020/09/02 Python
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
越南综合购物网站:Lazada越南
2019/06/10 全球购物
2014年元旦促销活动方案
2014/02/22 职场文书
老人祝寿主持词
2014/03/28 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
展览会邀请函
2015/02/02 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
小学英语新课改心得体会
2016/01/22 职场文书