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删除文件示例分享
Jan 28 Python
Python map和reduce函数用法示例
Feb 26 Python
在Python 3中实现类型检查器的简单方法
Jul 03 Python
用Python编写简单的微博爬虫
Mar 04 Python
Python整型运算之布尔型、标准整型、长整型操作示例
Jul 21 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
Python使用matplotlib绘制三维参数曲线操作示例
Sep 10 Python
python调用Matplotlib绘制分布点图
Oct 18 Python
Python计算不规则图形面积算法实现解析
Nov 22 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
Mar 13 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
Jun 23 Python
Python实现智慧校园自动评教全新版
Jun 18 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 保留小数点
2009/04/21 PHP
php输出xml格式字符串(用的这个)
2012/07/12 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
PHP闭包实例解析
2014/09/08 PHP
php将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
2013/08/05 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
JSONP基础知识详解
2017/03/19 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[01:04:09]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第二场 2月2日
2021/03/11 DOTA
python字符串排序方法
2014/08/29 Python
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
python中的全局变量用法分析
2015/06/09 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
python kmeans聚类简单介绍和实现代码
2018/02/23 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
Python如何读写二进制数组数据
2020/08/01 Python
如何使用PHP session
2015/04/21 面试题
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
介绍一些UNIX常用简单命令
2014/11/11 面试题
财产公证书样本
2014/04/04 职场文书
pytorch中[..., 0]的用法说明
2021/05/20 Python
Java如何实现树的同构?
2021/06/22 Java/Android
Python语言中的数据类型-序列
2022/02/24 Python
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers