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 流程控制实例代码
Sep 25 Python
用Python编写一个简单的FUSE文件系统的教程
Apr 02 Python
利用QT写一个极简单的图形化Python闹钟程序
Apr 07 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
Sep 30 Python
Python进阶之全面解读高级特性之切片
Feb 19 Python
python实现证件照换底功能
Aug 20 Python
安装python及pycharm的教程图解
Oct 10 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
Oct 23 Python
python3中pip3安装出错,找不到SSL的解决方式
Dec 12 Python
Python 忽略文件名编码的方法
Aug 01 Python
简单了解Python字典copy与赋值的区别
Sep 16 Python
Autopep8的使用(python自动编排工具)
Mar 02 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
S900/ ETON E1-XM 收音机
2021/03/02 无线电
php+mysql 实现身份验证代码
2010/03/24 PHP
WordPress迁移时一些常见问题的解决方法整理
2015/11/24 PHP
php 的反射详解及示例代码
2016/08/25 PHP
redis查看连接数及php模拟并发创建redis连接的方法
2016/12/15 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
举例讲解AngularJS中的模块
2015/06/17 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
2019/09/30 Javascript
JS中的模糊查询功能
2019/12/08 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
python实现爬虫下载美女图片
2015/07/14 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
怎样实现H5+CSS3手指滑动切换图片的示例代码
2019/05/05 HTML / CSS
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
护理职业生涯规划书
2014/01/24 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
检讨书大全
2015/01/27 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
python 如何获取页面所有a标签下href的值
2021/05/06 Python
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
Linux安装apache服务器的配置过程
2021/11/27 Servers
关于EntityWrapper的in用法
2022/03/22 Java/Android