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实现爬虫下载漫画示例
Feb 16 Python
python3实现ftp服务功能(服务端 For Linux)
Mar 24 Python
Python将多个excel表格合并为一个表格
Feb 22 Python
Sanic框架配置操作分析
Jul 17 Python
使用Python制作表情包实现换脸功能
Jul 19 Python
python设计tcp数据包协议类的例子
Jul 23 Python
Django框架组成结构、基本概念与文件功能分析
Jul 30 Python
Python序列类型的打包和解包实例
Dec 21 Python
Python中无限循环需要什么条件
May 27 Python
哪些是python中web开发框架
Jun 17 Python
PyTorch-GPU加速实例
Jun 23 Python
python中类与对象之间的关系详解
Dec 16 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
dedecms中常见问题修改方法总结
2007/03/21 PHP
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
PHPMailer安装方法及简单实例
2008/11/25 PHP
php foreach循环中使用引用的问题
2013/11/06 PHP
thinkphp的CURD和查询方式介绍
2013/12/19 PHP
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
实现PHP搜索加分页
2016/10/12 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
ES10的13个新特性示例(小结)
2019/09/23 Javascript
微信小程序开发摇一摇功能
2019/11/22 Javascript
JS中FileReader类实现文件上传及时预览功能
2020/03/27 Javascript
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
PyCharm代码格式调整方法
2018/05/23 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
python装饰器原理与用法深入详解
2019/12/19 Python
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
经典公益广告词
2014/03/13 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
国王的演讲观后感
2015/06/03 职场文书
为自己工作观后感
2015/06/11 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
Python基础之Socket通信原理
2021/04/22 Python