zoukankan      html  css  js  c++  java
  • 十五、cookies和session的使用

    1、cookie和session的区别

      (1)cookie数据存放在客户的浏览器上,session数据放在服务器上。

      (2)cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗。

      (3)session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能。

      (4)单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie。

    2、爬虫处理cookie和session

      2.1 带上cookie、session的好处

        能够请求到登录之后的页面,因此必须发送带有cookies的请求。

      2.2 带上cookie、session的弊端

        一套cookie和session往往和一个用户对应。

        请求太快,请求次数太多,容易被服务器识别为爬虫。

        所以:不需要cookie的时候尽量不去使用cookie。

      2.3 处理cookie、session请求

        requests提供了一个叫做session类,来实现客户端和服务端的会话保持

        思路:先实例化session,再使用session发送请求,登录网站,把cookie保存在实例化的session中,接着使用session请求登录之后才能访问的网站,session能够自动的携带登录成功时保存在其中的cookie,进行请求。

        使用方法:

            (1)实例化一个session对象:`session = requests.session()`

            (2)让session发送get或则post请求:`response = session.get(url,headers)`

      2.4 Requests小技巧

        (1)把cookie对象转化为字典:`requests.util.dict_from_cookiejar`

        (2)设置超时:`response=requests.get(url,1)`

        (3)配合状态码判断是否请求成功:`assert response.status_code==200`

        (4)对url进行解码:`requests.utils.unquote("https:%3a%2f%2ftieba.baidu.com")`

        (5)对url进行编码:`requests.utils.quote("https://tieba.baidu.com")`

    3、retrying模块

      安装:`pip install retrying`

      作用:重复执行一段代码

      说明:retrying以装饰器的方式使用

      案例:

        ```

        from retrying import retry

        @retry

        def function():

          pass

        ```

        

  • 相关阅读:
    IE浏览器和谷歌浏览器相互跳转
    centos7安装docker
    centos7安装groovy
    centos7安装NodeJs
    mongodb数据库的备份还原
    centos7最小版配置
    centos7中python2.7升级到python3.7
    typedef struct用法详解与小结
    MinGW的gdb调试
    MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本
  • 原文地址:https://www.cnblogs.com/nuochengze/p/12890202.html
Copyright © 2011-2022 走看看