zoukankan      html  css  js  c++  java
  • 利用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));



  • 相关阅读:
    Scrapy爬虫快速入门
    python垃圾回收机制
    django项目的uwsgi方式启停脚本
    hdu 5504 GT and sequence
    python 在 for i in range() 块中改变 i 的值的效果
    linux 在终端中打开图形化文件管理器
    apache 支持 php
    Mysql 学习记录
    git 导入代码到已有仓库
    python import 自己的包
  • 原文地址:https://www.cnblogs.com/zw520ly/p/7347196.html
Copyright © 2011-2022 走看看