Python爬虫Urllib库对于Cookie的处理

Urllib库对于Cookie的处理

  • CookieJar对象

    • 创建

      cookie = cookieJar.CookieJar()

    • cookieJar实例是一个可迭代对象,每一条 cookie属性被封装成一个类存储再cookieJar实例中,调用这个类的name和value属性,可以获取cookie的键和值

      for i in cookies:
          print(i.name + "\t" + i.value)
      
  • LWPCookieJar

    • 简介

      此对像可以将cookie存入或读取在LWP格式的文件中

    • 创建

      cookies = cookieJar.LWPCookieJar(filename)

    • 保存

      cookies.save()

    • 读取

      cookies.load(filename)

  • MozillaCookieJar

    • 简介

      此对像可以将cookie存入或读取在Mozilla格式的文件中

    • 创建

      cookies = cookiejar.MozillaCookieJar(filename)
      
    • 保存

      cookies.save()

    • 读取

      cookie.load(filename)

使用Cookie

  • 保存cookie到变量

    from urllib import request, parse
    from http import cookieJar
    
    #创建cookieJar实例保存cookie
    cookie = cookieJar.CookieJar()
    #创建cookie的handler
    handler = request.HTTPCookieProcessor(cookie)
    #通过handler创建opener
    opener = build_opener(handler)
    
    #创建请求对象
    req = request.Requst(url, bytes(parse.urlencode(data), encoding="utf-8"), headers=headers)
    #发起请求,请求发送后绑定的handler就会为cookie中存入信息
    opener.open(req)
    
    #打印所有cookie信息
    for i in cookie:
        print(i.name + "\t" + i.value)
    
  • 保存cookie到文件

    • 使用LWP格式

      from urllib import request, parse
      from http import cookieJar
      
      #创建LWPCookie对象,指明路径
      cookie = cookieJar.MozillaCookieJar(filename)
      #创建绑定cookie的handler对象
      handler = request.HTTPCookoeProcessor(cookie)
      #创建opener
      opener = request.build_opener(handler)
      
      #创建请求对象
      req = request.Request(url, bytes(parse.urlencode(data), encoding="utf-8"), headers=headers)
      #发送请求
      opener.open(req)
      #保存到文件,同时指明如果被丢弃也会保存文件,文件如果存在则覆盖写入
      cookie.save(ignore_discard=Ture, ignore_expires=True)
      
    • 使用Mozilla格式

      from urllib import request, parse
      from http import cookieJar
      
      #创建LWPCookie对象,指明路径
      cookie = cookieJar.LWPCookieJar(filename)
      #创建绑定cookie的handler对象
      handler = request.HTTPCookoeProcessor(cookie)
      #创建opener
      opener = request.build_opener(handler)
      
      #创建请求对象
      req = request.Request(url, bytes(parse.urlencode(data), encoding="utf-8"), headers=headers)
      #发送请求
      opener.open(req)
      #保存到文件,同时指明如果被丢弃也会保存文件,文件如果存在则覆盖写入
      cookie.save(ignore_discard=Ture, ignore_expires=True)
      
  • 从文件中读取cookie

    • 使用LWP格式

      from urllib import request, parse
      from http import cookieJar
      
      #创建LWPCookieJar对象, 指明cookie文件路径
      cookie = cookieJar.LWPCookieJar(filename)
      #读取文件内容到实例
      cookie.load(filename, ignore_discard=True, ignore_expires=True)
      
      #创建handler
      handler = request.HTTPCookieProcessor(filename)
      #创建opener
      opener = request.build_opener(handler)
      
      #创建请求对象
      req = request.Request(url, bytes(parse.urlencode(data), encoding="utf-8"), headers=headers)
      #发送请求
      opener.open(req)
      
    • 使用Mozilla格式

      from urllib import request, parse
      from http import cookieJar
      
      #创建MozillaCookieJar对象, 指明cookie文件路径
      cookie = cookieJar.MozillaCookieJar(filename)
      #读取文件内容到实例
      cookie.load(filename, ignore_discard=True, ignore_expires=True)
      
      #创建handler
      handler = request.HTTPCookieProcessor(filename)
      #创建opener
      opener = request.build_opener(handler)
      
      #创建请求对象
      req = request.Request(url, bytes(parse.urlencode(data), encoding="utf-8"), headers=headers)
      #发送请求
      opener.open(req)
      
  • 从变量中读取cookie

    from urllib import request, parse
    from http import cookieJar
    
    #从某个函数中获取cookieJar对象
    cookieJar = getCookieJar()
    #创建handler
    handler = requst.HTTPCookieProcessor(cookieJar)
    #创建opener
    opener = requst.build_open(handler)
    
    #创建请求对象
    req = request.Request(url, bytes(parse.urlencode(data), encoding="utf-8"), headers=headers)
    
    #发送请求
    opener.open(req)
    
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值