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采用requests库模拟登录和抓取数据的简单示例
Jul 05 Python
Python lambda和Python def区别分析
Nov 30 Python
简单介绍Python中的RSS处理
Apr 13 Python
Python函数可变参数定义及其参数传递方式实例详解
May 25 Python
Python存取XML的常见方法实例分析
Mar 21 Python
解读python logging模块的使用方法
Apr 17 Python
详解Python3序列赋值、序列解包
May 14 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
Sep 23 Python
Python with语句和过程抽取思想
Dec 23 Python
解决jupyter notebook import error但是命令提示符import正常的问题
Apr 15 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
pycharm代码删除恢复的方法
Jun 26 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 5.0对象模型深度探索之属性和方法
2008/03/27 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
JQuery中使用ajax传输超大数据的解决方法
2014/07/14 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
JS实现使用POST方式发送请求
2019/08/30 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
Vue-resource安装过程及使用方法解析
2020/07/21 Javascript
用Javascript实现发送短信验证码间隔功能
2021/02/08 Javascript
python选择排序算法的实现代码
2013/11/21 Python
Python编程之属性和方法实例详解
2015/05/19 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
详解python进行mp3格式判断
2016/12/23 Python
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
对python中的pop函数和append函数详解
2018/05/04 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
python之拟合的实现
2019/07/19 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
餐饮总经理岗位职责
2014/03/07 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript
vue-router中hash模式与history模式的区别
2021/06/23 Vue.js
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技