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中除法使用的注意事项
Aug 21 Python
python中bisect模块用法实例
Sep 25 Python
Python操作CouchDB数据库简单示例
Mar 10 Python
Python函数参数类型*、**的区别
Apr 11 Python
windows下python安装pip图文教程
May 25 Python
用Python将一个列表分割成小列表的实例讲解
Jul 02 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
Dec 21 Python
python根据txt文本批量创建文件夹
Dec 08 Python
python flask安装和命令详解
Apr 02 Python
使用keras实现densenet和Xception的模型融合
May 23 Python
在python中使用pyspark读写Hive数据操作
Jun 06 Python
PyCharm 解决找不到新打开项目的窗口问题
Jan 15 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
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
2015/04/14 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
jQuery自定义数值抽奖活动代码
2016/06/11 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
vue2里面ref的具体使用方法
2017/10/27 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
JavaScript函数IIFE使用详解
2019/10/21 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
python 正则式使用心得
2009/05/07 Python
linux下python抓屏实现方法
2015/05/22 Python
python实现n个数中选出m个数的方法
2018/11/13 Python
Python装饰器限制函数运行时间超时则退出执行
2019/04/09 Python
Python处理PDF与CDF实例
2020/02/26 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
印尼穆斯林时尚购物网站:Hijabenka
2016/12/10 全球购物
美国领先的机场停车聚合商:Airport Parking Reservations
2020/02/28 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
迎接领导欢迎词
2014/01/11 职场文书
考试没考好检讨书
2014/01/31 职场文书
学习演讲稿范文
2014/05/10 职场文书
项目建议书范文
2014/05/12 职场文书
平面设计专业求职信
2014/08/09 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
2019年教师节祝福语精选,给老师送上真诚的祝福
2019/09/09 职场文书
Java实现多线程聊天室
2021/06/26 Java/Android