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中的数据存储模块shelve的用法
Mar 03 Python
Python安装使用命令行交互模块pexpect的基础教程
May 12 Python
python直接获取API传递回来的参数方法
Dec 17 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
python实现猜拳小游戏
Apr 05 Python
opencv+python实现均值滤波
Feb 19 Python
windows python3安装Jupyter Notebooks教程
Apr 13 Python
python numpy实现rolling滚动案例
Jun 08 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
Jun 24 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
python实现调用摄像头并拍照发邮箱
Apr 27 Python
如何Python使用re模块实现okenizer
Apr 30 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中操作Excel实例代码
2010/04/29 PHP
php设置编码格式的方法
2013/03/05 PHP
coreseek 搜索英文的问题详解
2013/06/08 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
javascript getElementsByName()的用法说明
2009/07/31 Javascript
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
JavaScript获取元素尺寸和大小操作总结
2015/02/27 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
Bootstrap警告(Alerts)的实现方法
2017/03/22 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
基于Vue SEO的四种方案(小结)
2019/07/01 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
使用python实现名片管理系统
2020/06/18 Python
Python函数的迭代器与生成器的示例代码
2020/06/18 Python
毕业生的自我评价分享
2013/12/18 职场文书
服务承诺书怎么写
2014/05/24 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
流动人口婚育证明
2014/10/19 职场文书
幼儿园开学通知
2015/04/24 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
2016年中秋节晚会领导致辞
2015/11/26 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书