利用Python获取cookie的方法,相比java代码简便不少
2017-08-11 17:51
676 查看
1、通过urllib库,是python的标准库,不需要另外引入,直接看代码,注意代码的缩进:
# coding=UTF-8 import cookielib import urllib2 class RyLogin(): """ 方法用于获取cookie: url:请求地址 data:请求参数 headers:需要设置的头部信息 cookieKey:需要获取的cookie的key """ def GetCookie(self, url, data, headers, cookieKey): # 最终获取的cookie值 cookieValue = ''; # 声明一个CookieJar对象实例来保存cookie cookies = cookielib.CookieJar() # 利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器 handler = urllib2.HTTPCookieProcessor(cookies) # 通过handler来构建opener opener = urllib2.build_opener(handler); # 设置请求头 opener.addheaders = headers; # 此处的open方法同urllib2的urlopen方法,也可以传入request response = opener.open(fullurl=url, data=data) for item in cookies: if item.name == cookieKey: cookieValue = item.name + '=' + item.value; return cookieValue; """ 定义实参 """ url = 'http://216.rongyi.com/ryoms/j_spring_security_check'; data = 'j_username=superadmin&j_password=123456&verifyCode='; headers = [('Content-Type', 'application/x-www-form-urlencoded')]; cookieKey = 'RYST'; """ 创建对象并调用 """ ryLogin = RyLogin(); print (ryLogin.GetCookie(url, data, headers, cookieKey)) 2、通过第三方库requests来实现,直接看代码
# coding=UTF-8 import requests # 登录大运营后台 class RyLogin: # 定义常量cookie的key值 cookie = 'Cookie'; """ 此方法用于获取cookie信息 url:请求地址 data:请求参数,key-value形式 heasers:请求头信息 cookieKey:需要获取的cookie的key """ def GetCookie(self, url, data, headers, cookieKey): # 通过requests的post方法发送请求并获取返回信息 response = requests.post(url=url, data=data, headers=headers); # 获取请求的headers信息 dict = response.request.headers; # 获取未经处理的cookie cookieStr = dict[self.cookie]; # 获取最终目标的cookie值 cookieValue = cookieStr[cookieStr.find(cookieKey) + 2:]; return cookieValue; """ 定义实参 """ url = 'http://216.rongyi.com/ryoms/ryoms/j_spring_security_check'; data = 'j_username=superadmin&j_password=123456&verifyCode='; headers = {'Content-Type': 'application/x-www-form-urlencoded'}; cookieKey = '; RYST='; """ 创建对象并调用 """ ryLogin = RyLogin(); print(ryLogin.GetCookie(url, data, headers, cookieKey));
相关文章推荐
- Java利用反射来获取一个方法的 范型化参数 Vector<Integer>的类型
- 各类Java heap space 解决方法,并通过java代码获取JVM的相关信息,所在操作系统的信息(包含eclipse&amp;myeclipse的调试的内存设置)
- 利用svcutil.exe 访问windows Server 2003的wcf服务生成客户端代码报错:无法从http://XXX/XXX.svc?wsdl获取元数据”错误的解决方法
- Android APK反编译方法(可以获取APK xml和android Manifest,java代码等内容)
- 使用java调用C语言的方法,让java获取串口数据并生成一个String对象的代码。
- Java利用反射来获取一个方法的 范型化参数 Vector<Integer>的类型
- 利用Javassist获取Java类中的方法参数名、参数类型、方法访问类型
- 黑马程序员--Java基础加强--14.利用反射操作泛型III【解析关于泛型类型的细节信息的获取方法】【Method与泛型相关的方法】【个人总结】
- Java中获取当前运行代码的类名、方法名、行号
- Java 获取主板和硬盘序列号方法代码
- python hadoop 在streaming中获取文件名的方法 (参考java )适用: MRjob
- 【用Python写爬虫】获取html的方法【五】:利用Twisted框架之client.getPage
- Python类属性和类方法的一些差别(与C++和Java相比)
- 在Eclipse里利用javah把java代码声明的JNI方法自动生成成C\C++头文件
- Android APK反编译方法(可以获取APK xml和android Manifest,java代码等内容)
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- jquery利用event.which方法获取键盘输入值的代码
- 利用svcutil.exe 访问windows Server 2003的wcf服务生成客户端代码报错:无法从http://XXX/XXX.svc?wsdl获取元数据”错误的解决方法
- jquery利用event.which方法获取键盘输入值的代码
- Java中获取当前运行代码的类名、方法名、行号