Cookie

作者: 巩固2022 | 来源:发表于2017-10-10 12:29 被阅读7次

    为辨认用户身份、进行session跟踪而存储在用户本地终端上的数据

    Cookielib

    主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源。
    使用Cookielib模块的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送,比如模拟登录
    该模块的对象有CookieJar、FileCookieJar、MozillaCoolieJar、LWPCookieJar

    获取Cookie保存到变量

    用CookieJar对象实现获取cookie的功能,存储到变量中

    import urllib2
    import cookielib
    # 声明一个CookieJar对象实例来保存cookie
    cookie = cookielib.CookieJar()
    # 利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
    handler = urllib2.HTTPCookieProcessor(cookie)
    # 通过handler来构建opener
    opener = urllib2.build_opener(handler)
    # 此处的open方法同urllib2的urlopen方法
    response = opener.open("http://www.baidu.com")
    for item in cookie:
        print 'Key = ' + item.name
        print 'Value = ' + item.value
    

    保存Cookie到文件

    使用FileCookieJar的子类MozillaCookieJar来实现Cookie的保存

    import cookielib
    import urllib2
    
    # 设置保存cookie的文件,同级目录下的cookie.txt
    filename = "cookie.txt"
    # 声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
    cookie = cookielib.MozillaCookieJar(filename)
    # 利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
    handler = urllib2.HTTPCookieProcessor(cookie)
    # 通过handler来构建opener
    opener = urllib2.build_opener(handler)
    # 创建一个请求,原理同urllib2的urlopen
    response = opener.open("http://www.baidu.com")
    # 保存cookie到文件
    cookie.save(ignore_discard=True, ignore_expires=True)
    

    ignore_discard:即使cookies将被丢弃也将它保存下来
    ignore_expires:如果在该文件中cookies已经存在,则覆盖原文件写入

    从文件中获取Cookie并访问

    import cookielib
    import urllib2
    # 创建MozillaCookieJar实例对象
    cookie = cookielib.MozillaCookieJar()
    # 从文件中读取cookie内容到变量
    cookie.load("cookie.txt", ignore_discard = True, ignore_expires = True)
    # 创建请求的request
    request = urllib2.Request("http://www.baidu.com")
    # 利用urllib的build_opener方法创建一个opener
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
    response = opener.open(reg)
    print response.read()
    

    模拟登录

    import urllib
    import urllib2
    import cookielib
    filename = "cookie.txt"
    # 声明一个MozillaCookieJar对象来保存cookie,之后写入文件
    cookie = cookielib.mozillaCookieJar(filename)
    opener = urllib2.build_opener(urlib2.HTTPCookieProcessor(cookie))
    postdata = {
        "account": "916859921@qq.com",
        "passord": "xxxxxxx"
    }
    loginurl = "https://coding.net/login"
    # 模拟登录
    result = opener.open(loginurl, postdata)
    # 保存cookie
    cookie.save(ignore_discard = True, ignore_expires = True)
    # 利用cookie请求访问另一个网址
    geturl = "https://coding.net/user"
    # 请求个人中心
    result = opener.open(geturl)
    print result.read()
    

    相关文章

      网友评论

        本文标题:Cookie

        本文链接:https://www.haomeiwen.com/subject/vgjvyxtx.html