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使用tensorflow保存、加载和使用模型的方法
Jan 31 Python
Python管理Windows服务小脚本
Mar 12 Python
Windows下Anaconda2安装NLTK教程
Sep 19 Python
Python Numpy:找到list中的np.nan值方法
Oct 30 Python
pandas数据集的端到端处理
Feb 18 Python
Python:Numpy 求平均向量的实例
Jun 29 Python
Django model 中设置联合约束和联合索引的方法
Aug 06 Python
解决python3 requests headers参数不能有中文的问题
Aug 21 Python
用Python写一个自动木马程序
Sep 17 Python
python3 requests库实现多图片爬取教程
Dec 18 Python
python nohup 实现远程运行不宕机操作
Apr 16 Python
Python 列表推导式需要注意的地方
Oct 23 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
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
layui lay-verify form表单自定义验证规则详解
2019/09/18 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
浅谈Python基础之I/O模型
2017/05/11 Python
python基本语法练习实例
2017/09/19 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
python连接mongodb集群方法详解
2020/02/13 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
Columbia美国官网:美国著名的户外服装品牌
2016/11/24 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
Yahoo的PHP面试题
2014/05/26 面试题
C/C++程序员常见面试题二
2015/11/19 面试题
公司节能减排方案
2014/05/16 职场文书
小学生九一八纪念日83周年演讲稿500字
2014/09/17 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
平安建设汇报材料
2014/12/29 职场文书
先进典型事迹材料
2014/12/29 职场文书
Python图像处理之图像拼接
2021/04/28 Python
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android
MySQL 四种连接和多表查询详解
2021/07/16 MySQL