Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件 人人网

                     

Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件(人人网)

  • 上一篇介绍了利用CookieJar访问人人网,本篇将使用filecookiejar将cookie以文件形式保存
  • 自动使用cookie登录,使用步骤: 
    • 1.打开登录页面后,通过用户名密码登录
    • 2.自动提取反馈回来的cookie
    • 3.利用提取的cookie登录个人信息页面 
      • 创建cookiejar实例
      • 生成cookie的管理器
      • 创建http请求管理器
      • 创建https请求的管理器
      • 创建请求管理器
      • 通过输入用户名和密码,获取cookie
  • 代码:
# 创建cookiejar的实例cookie = cookiejar.CookieJar()# 常见cookie的管理器cookie_handler = request.HTTPCookieProcessor(cookie)# 创建http请求的管理器http_handler = request.HTTPHandler()# 生成https管理器https_handler = request.HTTPSHandler()# 创建请求管理器opener = request.build_opener(http_handler,https_handler,cookie_handler)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

创建handle后,使用opener打开,打开后相应的业务由相应的handle处理

cookie作为一个变量打印出来

# 使用cookiejar# cookie作为一个变量打印出来from urllib import request,parsefrom http import cookiejar# 创建cookiejar的实例cookie = cookiejar.CookieJar()# 常见cookie的管理器cookie_handler = request.HTTPCookieProcessor(cookie)# 创建http请求的管理器http_handler = request.HTTPHandler()# 生成https管理器https_handler = request.HTTPSHandler()# 创建请求管理器opener = request.build_opener(http_handler,https_handler,cookie_handler)def login():    # 负责首次登录,输入用户名和密码,用来获取cookie    url = 'http://www.renren.com/PLogin.do'    id = input('请输入用户名:')    pw = input('请输入密码:')    data = {        # 参数使用正确的用户名密码        "email": id,        "password": pw    }    # 把数据进行编码    data = parse.urlencode(data)    # 创建一个请求对象    req = request.Request(url,data=data.encode('utf-8'))    # 使用opener发起请求    rsp = opener.open(req)# 以上代码就可以进一步获取cookie了,cookie在哪呢?cookie在opener里def getHomePage():    # 地址是用在浏览器登录后的个人信息页地址    url = "http://www.renren.com/967487029/profile"    # 如果已经执行login函数,则opener自动已经包含cookie    rsp = opener.open(url)    html = rsp.read().decode()    with open("rsp1.html", "w", encoding="utf-8")as f:        # 将爬取的页面        print(html)        f.write(html)if __name__ == '__main__':    login()    # 执行完login之后,会得到授权之后的cookie,下一步打印出来    print(cookie)    for item in cookie:        print(type(item))        print(item)        for i in dir(item):            print(i)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

我们使用print(i)打印出来了cookie的所有属性
Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件 人人网
下面介绍常用的属性

cookie的属性

  • name:名称
  • value:值
  • domain:可以访问此cookie的域名
  • path:可以访问此cookie的页面路径
  • expires:过期时间
  • size:大小
  • http:字段
cookie的值虽然可以自己修改,但是修改后就会导致和服务器端数据不一致,而使cookie无效,最终登录失败

cookie的保存-FileCookieJar

# 使用filecookiejarfrom urllib import request,parsefrom http import cookiejar# 创建cookiejar的实例filename = "py15renrenCookie.txt"cookie = cookiejar.MozillaCookieJar(filename)# 常见cookie的管理器cookie_handler = request.HTTPCookieProcessor(cookie)# 创建http请求的管理器http_handler = request.HTTPHandler()# 生成https管理器https_handler = request.HTTPSHandler()# 创建请求管理器opener = request.build_opener(http_handler,https_handler,cookie_handler)def login():    # 负责首次登录,输入用户名和密码,用来获取cookie    url = 'http://www.renren.com/PLogin.do'    id = input('请输入用户名:')    pw = input('请输入密码:')    data = {        # 参数使用正确的用户名密码        "email": id,        "password": pw    }    # 把数据进行编码    data = parse.urlencode(data)    # 创建一个请求对象    req = request.Request(url,data=data.encode('utf-8'))    # 使用opener发起请求    rsp = opener.open(req)    '''    保存cookie到文件    两个参数:        ignore_discard:表示及时cookie将要被丢弃,是否保存下来        ignore_expires:表示如果该文件中cookie已经过期,是否保存下来    '''    cookie.save(ignore_discard=True, ignore_expires=True)if __name__ == '__main__':    login()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

运行结果

Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件 人人网
本篇使用filecookiejar将cookie以文件形式保存

更多文章链接:Python 爬虫随笔


- 本笔记不允许任何个人和组织转载

           
                     

Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件(人人网)

  • 上一篇介绍了利用CookieJar访问人人网,本篇将使用filecookiejar将cookie以文件形式保存
  • 自动使用cookie登录,使用步骤: 
    • 1.打开登录页面后,通过用户名密码登录
    • 2.自动提取反馈回来的cookie
    • 3.利用提取的cookie登录个人信息页面 
      • 创建cookiejar实例
      • 生成cookie的管理器
      • 创建http请求管理器
      • 创建https请求的管理器
      • 创建请求管理器
      • 通过输入用户名和密码,获取cookie
  • 代码:
# 创建cookiejar的实例cookie = cookiejar.CookieJar()# 常见cookie的管理器cookie_handler = request.HTTPCookieProcessor(cookie)# 创建http请求的管理器http_handler = request.HTTPHandler()# 生成https管理器https_handler = request.HTTPSHandler()# 创建请求管理器opener = request.build_opener(http_handler,https_handler,cookie_handler)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

创建handle后,使用opener打开,打开后相应的业务由相应的handle处理

cookie作为一个变量打印出来

# 使用cookiejar# cookie作为一个变量打印出来from urllib import request,parsefrom http import cookiejar# 创建cookiejar的实例cookie = cookiejar.CookieJar()# 常见cookie的管理器cookie_handler = request.HTTPCookieProcessor(cookie)# 创建http请求的管理器http_handler = request.HTTPHandler()# 生成https管理器https_handler = request.HTTPSHandler()# 创建请求管理器opener = request.build_opener(http_handler,https_handler,cookie_handler)def login():    # 负责首次登录,输入用户名和密码,用来获取cookie    url = 'http://www.renren.com/PLogin.do'    id = input('请输入用户名:')    pw = input('请输入密码:')    data = {        # 参数使用正确的用户名密码        "email": id,        "password": pw    }    # 把数据进行编码    data = parse.urlencode(data)    # 创建一个请求对象    req = request.Request(url,data=data.encode('utf-8'))    # 使用opener发起请求    rsp = opener.open(req)# 以上代码就可以进一步获取cookie了,cookie在哪呢?cookie在opener里def getHomePage():    # 地址是用在浏览器登录后的个人信息页地址    url = "http://www.renren.com/967487029/profile"    # 如果已经执行login函数,则opener自动已经包含cookie    rsp = opener.open(url)    html = rsp.read().decode()    with open("rsp1.html", "w", encoding="utf-8")as f:        # 将爬取的页面        print(html)        f.write(html)if __name__ == '__main__':    login()    # 执行完login之后,会得到授权之后的cookie,下一步打印出来    print(cookie)    for item in cookie:        print(type(item))        print(item)        for i in dir(item):            print(i)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

我们使用print(i)打印出来了cookie的所有属性
Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件 人人网
下面介绍常用的属性

cookie的属性

  • name:名称
  • value:值
  • domain:可以访问此cookie的域名
  • path:可以访问此cookie的页面路径
  • expires:过期时间
  • size:大小
  • http:字段
cookie的值虽然可以自己修改,但是修改后就会导致和服务器端数据不一致,而使cookie无效,最终登录失败

cookie的保存-FileCookieJar

# 使用filecookiejarfrom urllib import request,parsefrom http import cookiejar# 创建cookiejar的实例filename = "py15renrenCookie.txt"cookie = cookiejar.MozillaCookieJar(filename)# 常见cookie的管理器cookie_handler = request.HTTPCookieProcessor(cookie)# 创建http请求的管理器http_handler = request.HTTPHandler()# 生成https管理器https_handler = request.HTTPSHandler()# 创建请求管理器opener = request.build_opener(http_handler,https_handler,cookie_handler)def login():    # 负责首次登录,输入用户名和密码,用来获取cookie    url = 'http://www.renren.com/PLogin.do'    id = input('请输入用户名:')    pw = input('请输入密码:')    data = {        # 参数使用正确的用户名密码        "email": id,        "password": pw    }    # 把数据进行编码    data = parse.urlencode(data)    # 创建一个请求对象    req = request.Request(url,data=data.encode('utf-8'))    # 使用opener发起请求    rsp = opener.open(req)    '''    保存cookie到文件    两个参数:        ignore_discard:表示及时cookie将要被丢弃,是否保存下来        ignore_expires:表示如果该文件中cookie已经过期,是否保存下来    '''    cookie.save(ignore_discard=True, ignore_expires=True)if __name__ == '__main__':    login()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

运行结果

Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件 人人网
本篇使用filecookiejar将cookie以文件形式保存

更多文章链接:Python 爬虫随笔


- 本笔记不允许任何个人和组织转载