• 利用Python获取cookie的方法,相比java代码简便不少


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



  • 相关阅读:
    int (*p)[10] 与*p[10]的区别
    运算顺序
    关于linux开机进入grub问题的解决方法
    对于特殊字符串的处理方法
    学习进度条
    阅读《实例化需求》4-6章有感
    学习进度条
    阅读《实例化需求》1-3章有感
    问题账户需求分析
    2016年秋季个人阅读计划
  • 原文地址:https://www.cnblogs.com/zw520ly/p/7347196.html
Copyright © 2020-2023  润新知