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));