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 相关文章推荐
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
Jan 17 Python
python中zip和unzip数据的方法
May 27 Python
python daemon守护进程实现
Aug 27 Python
使用python实现ANN
Dec 20 Python
python微信跳一跳系列之棋子定位颜色识别
Feb 26 Python
Random 在 Python 中的使用方法
Aug 09 Python
Django项目中使用JWT的实现代码
Nov 04 Python
python 微信好友特征数据分析及可视化
Jan 07 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
python中upper是做什么用的
Jul 20 Python
python实现移动木板小游戏
Oct 09 Python
python 批量将中文名转换为拼音
Feb 07 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
[原创]效率较高的php下读取文本文件的代码
2008/07/02 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
基于php编程规范(详解)
2017/08/17 PHP
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
AngularJS的Filter的示例详解
2017/03/07 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
[17:45]DOTA2 HEROES教学视频教你分分钟做大人-军团指挥官
2014/06/11 DOTA
写了个监控nginx进程的Python脚本
2012/05/10 Python
python中stdout输出不缓存的设置方法
2014/05/29 Python
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
python矩阵转换为一维数组的实例
2018/06/05 Python
深入分析python中整型不会溢出问题
2018/06/18 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
销售找工作求职信
2013/12/20 职场文书
庆祝教师节活动方案
2014/01/31 职场文书
党的群众路线教育实践活动心得体会
2014/03/03 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
学生安全责任书范本
2014/07/24 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
高三英语教学计划
2015/01/23 职场文书
高二语文教学反思
2016/02/16 职场文书
导游词之舟山普陀山
2019/11/06 职场文书
python之django路由和视图案例教程
2021/07/26 Python
Python何绘制带有背景色块的折线图
2022/04/23 Python