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+Java调用Shell脚本时的死锁陷阱详解
Jan 24 Python
tensorflow训练中出现nan问题的解决
Feb 10 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
Python 字符串类型列表转换成真正列表类型过程解析
Aug 26 Python
Python爬虫爬取Bilibili弹幕过程解析
Oct 10 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
OpenCV中VideoCapture类的使用详解
Feb 14 Python
jupyter notebook远程访问不了的问题解决方法
Jan 11 Python
Python3+Flask安装使用教程详解
Feb 16 Python
Pytorch实现图像识别之数字识别(附详细注释)
May 11 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 Python
Python开发简易五子棋小游戏
May 02 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
星际实力自我测试
2020/03/04 星际争霸
PHP 遍历文件实现代码
2011/05/04 PHP
简单实现PHP留言板功能
2016/12/21 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
jquery maxlength使用说明
2011/09/09 Javascript
复制js对象方法(详解)
2013/07/08 Javascript
jQuery中detach()方法用法实例
2014/12/25 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
Express使用html模板的详细代码
2017/09/18 Javascript
关于vue的npm run dev和npm run build的区别介绍
2019/01/14 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
js+canvas实现纸牌游戏
2020/03/16 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
两个命令把 Vim 打造成 Python IDE的方法
2016/03/20 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
公务员个人自我评价分享
2013/11/06 职场文书
会计专业自荐信
2013/12/02 职场文书
尽职尽责村干部自我鉴定
2014/01/23 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
献爱心大型公益活动策划方案
2014/09/15 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
文明班级申报材料
2014/12/24 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
JavaScript实现队列结构过程
2021/12/06 Javascript
virtualenv隔离Python环境的问题解析
2022/06/21 Python