python获取服务器响应cookie的实例


Posted in Python onDecember 28, 2018

总结

调试网站获取cookies时请查看,r.header和r.request.header这两个属性,因为cookie说不准出现在他们俩谁里面。

先贴一个代码

import re
import requests
from bs4 import BeautifulSoup
def printHeaders(headers):
 for h in headers:
 print(h+" : "+headers[h] + '\r\n')

def printCookies(cookies):
 for h in cookies:
 print(h+" : "+cookies[h] + '\r\n')

def loginFw(id,password):
 url = "http://xxxxx/login.asp" 
 try:
 headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0',
   'Host':'www.xxx.org',
   'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
   'Accept-Language':'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
   'Accept-Encoding':'gzip, deflate',
   'Content-Type':'application/x-www-form-urlencoded',
   'Referer':'http://xxx/login.asp',
   'Connection':'keep-alive',
   }
 params = {"Reglname":id,"reglpassword":password}
 r = requests.post(url,data=params,headers=headers)
 printHeaders(r.request.headers) #服务器返回的cookie需要用r.request里的headers来获取
 printHeaders(r.headers) #这里是获取不到服务器返回的cookie的

 r.encoding = 'utf-8'

 return r.text
 except Exception as e:
 print("登陆错误:"+str(e))




ret = loginFw("xxx@qq.com","xxx")
#print(ret)

事情经过

事情的发生是这样的,今天我在调试一个网站的模拟登陆,但是怎么调试都调试不出来这个网站返回的cookie(因为我是用r.headers来获取cookies的),后来我就在想是不是我的请求头没有设置正确,然后我就遍历了r.request.headers,然后这个变量如实的打印了我的请求头的信息,但是我仔细一看cookie怎么出现了变化,咦,这不就是我需要的响应cookie吗!

难道是我对r.request这个对象的理解出错了吗?以前我一直认为这个对象里面存储的是我请求发出去的信息,现在怎么会出现响应cookie呢?

就在我百撕不得其解的时候,我去翻阅了requests库的官方文档关于respond对象中包含的request的解释,它上面写着“The PreparedRequest object to which this is a response.”(表示看不到什么意思,百度翻译也翻译不清楚),咦,好像是和响应有关啊,看来应该是我的理解出现了错误。

更好的解决方案

那当然是用requests提供的"会话对象",他能够自动的保留请求所获取的参数。

具体请跳转传送门:

http://cn.python-requests.org/zh_CN/latest/user/advanced.html#request-and-response-objects

后来

后来我发现原来是因为我在请求头里面写了“Host”,“Referer”,导致Cookie出现异常的原因,所以以后不要随便写这两个参数了,要写就照着封包里的写。

以上这篇python获取服务器响应cookie的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python生成指定尺寸缩略图的示例
May 07 Python
Python中bisect的用法
Sep 23 Python
python Django批量导入数据
Mar 25 Python
Python提取Linux内核源代码的目录结构实现方法
Jun 24 Python
Python第三方Window模块文件的几种安装方法
Nov 22 Python
python的sorted用法详解
Jun 25 Python
python tkinter实现屏保程序
Jul 30 Python
python调用支付宝支付接口流程
Aug 15 Python
Python+opencv+pyaudio实现带声音屏幕录制
Dec 23 Python
python 在threading中如何处理主进程和子线程的关系
Apr 25 Python
pycharm 添加解释器的方法步骤
Aug 31 Python
Cpython解释器中的GIL全局解释器锁
Nov 09 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 #Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 #Python
Python编程图形库之Pillow使用方法讲解
Dec 28 #Python
对python中大文件的导入与导出方法详解
Dec 28 #Python
Python编程深度学习计算库之numpy
Dec 28 #Python
python将txt文档每行内容循环插入数据库的方法
Dec 28 #Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
Dec 28 #Python
You might like
DISCUZ 分页代码
2007/01/02 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
php计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
PHP+MYSQL实现读写分离简单实战
2017/03/13 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
jquery 日期分离成年月日的代码
2010/05/14 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
移动适配的几种方案(三种方案)
2016/11/25 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
JS闭包经典实例详解
2018/12/20 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
全面理解Python中self的用法
2016/06/04 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
Python正则表达式和re库知识点总结
2019/02/11 Python
Python逐行读取文件中内容的简单方法
2019/02/26 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
2020/04/02 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
澳大利亚最受欢迎的女士度假服装:Kabana Shop
2020/10/10 全球购物
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
设计大赛策划方案
2014/06/13 职场文书
学生违反校规检讨书
2014/10/28 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
高中生个性发展自我评价
2015/03/09 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书
广播稿:校园广播稿范文
2019/04/17 职场文书