• 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字段
  • 相关阅读:
    python中json.dumps()和json.dump() 以及 json.loads()和json.load()的区分
    Python的函数
    Python的Set容器
    Python的Dict容器
    Python的tuple容器
    Python的List容器
    python 的控制流程
    Python 数据类型
    k8s-Pod调度策略
    K8s创建pod yaml文件详解
  • 原文地址:https://www.cnblogs.com/sl0309/p/10535390.html
Copyright © 2020-2023  润新知