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中的列表推导浅析
Apr 26 Python
itchat和matplotlib的结合使用爬取微信信息的实例
Aug 25 Python
Python实现一个服务器监听多个客户端请求
Apr 12 Python
python3发送邮件需要经过代理服务器的示例代码
Jul 25 Python
Python 实现黑客帝国中的字符雨的示例代码
Feb 20 Python
Pytest参数化parametrize使用代码实例
Feb 22 Python
使用python实现时间序列白噪声检验方式
Jun 03 Python
Python3创建Django项目的几种方法(3种)
Jun 03 Python
用pandas划分数据集实现训练集和测试集
Jul 20 Python
详解pandas apply 并行处理的几种方法
Feb 24 Python
python基础之类属性和实例属性
Oct 24 Python
利用Python脚本写端口扫描器socket,python-nmap
Jul 23 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
Cygwin中安装PHP方法步骤
2015/07/04 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
微信 开发生成带参数的二维码的实例
2016/11/23 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
另一个javascript小测验(代码集合)
2011/07/27 Javascript
jquery自定义滚动条插件示例分享
2014/02/21 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
优雅地使用loading(推荐)
2019/04/20 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
python中文乱码的解决方法
2013/11/04 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
Flask之请求钩子的实现
2018/12/23 Python
Python 的AES加密与解密实现
2019/07/09 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
python numpy数组中的复制知识解析
2020/02/03 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
程序员机试试题汇总
2012/03/07 面试题
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
敬老院标语
2014/06/27 职场文书
社区务虚会发言材料
2014/10/20 职场文书
大学生团员个人总结
2015/02/14 职场文书
爸爸的三轮车观后感
2015/06/16 职场文书
治理商业贿赂工作总结
2015/08/10 职场文书
小学美术教学反思
2016/02/17 职场文书
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python