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对列表去重的多种方法(四种方法)
Dec 05 Python
详解Python中的正则表达式
Jul 08 Python
tensorflow实现逻辑回归模型
Sep 08 Python
python中map的基本用法示例
Sep 10 Python
Python函数any()和all()的用法及区别介绍
Sep 14 Python
Python中is和==的区别详解
Nov 15 Python
使用PyQt4 设置TextEdit背景的方法
Jun 14 Python
python字符串替换第一个字符串的方法
Jun 26 Python
python文件和文件夹复制函数
Feb 07 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
pycharm 配置svn的图文教程(手把手教你)
Jan 15 Python
利用Python脚本写端口扫描器socket,python-nmap
Jul 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
Wordpress php 分页代码
2009/10/21 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
javascript编码的几个方法详细介绍
2013/01/06 Javascript
JS验证字符串功能
2017/02/22 Javascript
Vue指令的钩子函数使用方法
2017/03/20 Javascript
webpack构建react多页面应用详解
2017/09/15 Javascript
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
[01:22:29]真视界:2019年国际邀请赛总决赛
2020/01/29 DOTA
详解Python命令行解析工具Argparse
2016/04/20 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
详解python的webrtc库实现语音端点检测
2017/05/31 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
python 元组的使用方法
2020/06/09 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
如何用Python绘制3D柱形图
2020/09/16 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
教师实习自我鉴定
2013/12/13 职场文书
运动会领导邀请函
2014/02/05 职场文书
冰淇淋店的创业计划书
2014/02/07 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
公司党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
置业顾问岗位职责
2015/02/09 职场文书
标枪加油稿
2015/07/22 职场文书
商务宴会祝酒词
2015/08/11 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript