zoukankan      html  css  js  c++  java
  • Python爬虫7-Cookie & Session

    GitHub代码练习地址:1.手动利用cookie访问网页:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac10_cookie1.py
               2.自动利用cookie访问人人主页:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac11_cookie2.py

    cookie & session

    由于http协议的无记忆性,人们为了弥补这个缺憾,所采用的一个补充协议
    cookie是发放给用户(即http浏览器)的一段信息,session是保存在服务器上的对应的另一半信息,用来记录用户信息

    cookie与session的存放位置不同
       session的存放位置
      存在服务器端
      一般情况,session是放在内存中或者数据库中
      没有cookie登录的情况:没使用cookie则反馈网页为未登录状态
       cookie不安全
    session会保存在服务器上一定时间,会过期
    单个cookie保存数据不超过4k, 很多浏览器限制一个站点最多保存20个
      
    使用cookie登录
    1.手动:
    直接把cookie复制下来,然后手动放入请求头,代码见上1。

      2.自动:
    http模块包含一些关于cookie的模块,通过他们我们可以自动使用cookie
    ①.CookieJar
    管理存储cookie,向传出的http请求添加cookie,
    cookie存储在内存中,CookieJar实例回收后cookie将消失
    ②.FileCookieJar(filename, delayload=None, policy=None):
    使用文件管理cookie
    filename是保存cookie的文件
    ③.MozillaCookieJar(filename, delayload=None, policy=None):
    创建与mocilla浏览器cookie.txt兼容的FileCookieJar实例
    ④.LwpCookieJar(filename, delayload=None, policy=None):
    创建与libwww-perl标准兼容的Set-Cookie3格式的FileCookieJar实例
    他们的关系是: CookieJar-->FileCookieJar-->MozillaCookieJar & LwpCookieJar

    利用cookiejar访问人人,代码见上2。

    自动使用cookie登录,大致流程是
    ①.打开登录页面后自动通过用户名密码登录
    ②.自动提取反馈回来的cookie
    ③.利用提取的cookie登录隐私页面
    handler是Handler的实例,常用参看案例代码
    用来处理复杂请求

    生成 cookie的管理器
    cookie_handler = request.HTTPCookieProcessor(cookie)
    创建http请求管理器
    http_handler = request.HTTPHandler()
    生成https管理器
    https_handler = request.HTTPSHandler()

    创立handler后,使用opener打开,打开后相应的业务由相应的hanlder处理
    cookie作为一个变量,打印出来,
    cookie的属性
    - name: 名称
    - value: 值
    - domain:可以访问此cookie的域名
    - path: 可以访问此cookie的页面路径
    - expires:过期时间
    - size: 大小
    - Http字段
  • 相关阅读:
    3+1>4 第十次作业:Beta冲刺 Scrum meeting 4
    3+1>4 第十次作业:Beta冲刺 Scrum meeting 3
    3+1>4 第十次作业:Beta冲刺 Scrum meeting 2
    3+1>4 第十次作业:Beta冲刺 Scrum meeting 1
    实验九 团队作业5:团队项目编码与Alpha冲刺
    3+1>4 第九次作业:Alpha冲刺 Scrum meeting 7
    3+1>4 第九次作业:Alpha冲刺 Scrum meeting 6
    3+1>4 第九次作业:Alpha冲刺 Scrum meeting 5
    3+1>4 第九次作业:Alpha冲刺 Scrum meeting 4
    个人作业——软件工程实践总结&个人技术博客
  • 原文地址:https://www.cnblogs.com/sl0309/p/10535390.html
Copyright © 2011-2022 走看看