Javascript - Aplicación de adquisición y almacenamiento de cookies

   En el blog anterior, presenté cómo usar Selenium para crear un grupo de cookies, automatizar el inicio de sesión, obtener información, etc. Entonces, ¿qué es una cookie? ¿Cuál es su función? Aquí se repite una breve introducción.


   Una cookie es un pequeño archivo de texto que el navegador almacena en la computadora del usuario. La información cifrada del usuario, el tiempo de caducidad, etc. se almacenan en este archivo y se traerá una cookie con cada solicitud. Cuando el usuario visite la próxima vez, el archivo de cookies local y la URL se enviarán juntos al servidor, y el servidor usará esto para juzgar el estado del usuario. Debido a la capacidad limitada de la cookie, solo 4kb, a veces es imposible almacenar toda la información del usuario en ella, por lo que la sesión puede resolver este problema.El servidor consulta otra información del usuario en la sesión a través de la información de identidad, de modo que todas nuestras operaciones serán preservadas. . El siguiente es un ejemplo para demostrar cómo configurar una sesión.



inserte la descripción de la imagen aquí



import requests

session = requests.Session()
headers = {
    
    
  'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}

// 设置 session 的全局 headers
session.headers.update(headers)

// 默认使用全局的 headers
session.get('https://passport.vip.com/')

//自定义 headers
custom_headers = {
    
     'referer': 'https://passport.vip.com/' }


// 既有全局的 user-agent 也有自定义的 referer
session.get('https://passport.vip.com/', headers=custom_headers)


   Antes de explicar la adquisición y el almacenamiento de cookies, presente brevemente la estructura básica de las cookies en el navegador.



   Se puede observar que los principales componentes son el par clave-valor Nombre-Valor y el ciclo de vida de Expires, es decir, el tiempo de caducidad.



inserte la descripción de la imagen aquí



   Obtener cookie: después de crear y leer el objeto Document document.cookie, divídalo en una matriz con un punto y coma y luego agregue una condición de juicio a través de un bucle for Cuando se encuentre el nombre correspondiente, se devolverá el nombre de usuario correspondiente. Devuelve nulo si no se encuentra.



function getCookie(cname) {
    
    
  var name = cname + '=';
  var ca = document.cookie.split(';'); 
  for (var i = 0; i < ca.length; i++) {
    
    
      if (ca[i].indexOf(name) >= 0) {
    
    
         return ca[i].split('=')[1];
          }
        }
        return '';
  }


   Guarde y configure la cookie: cree un objeto de tiempo chino estándar y luego configure el ciclo de vida de la cookie a través del método setTime(), donde getTime() es para convertir el objeto de tiempo en una marca de tiempo de Greenwich (en milisegundos), y finalmente put La marca de tiempo se convierte a la hora estándar GMT a través del método toGMTString().



function setCookie(cname, cvalue, exdays) {
    
    
   var d = new Date();
   d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
   var expires = 'expires=' + d.toGMTString();
   document.cookie = cname + '=' + cvalue + ';' + expires;
}


inserte la descripción de la imagen aquí



inserte la descripción de la imagen aquí



inserte la descripción de la imagen aquí



   Comprobación de cookies: agregue condiciones de juicio a través de las funciones de devolución de llamada getCookie() y setCookie(). Cuando se detecta una cookie local, aparecerá automáticamente un cuadro de bienvenida. De lo contrario, debe ingresar el nombre de usuario y guardarlo en la cookie.

function checkCookie() {
    
    
   var user = getCookie('username');
   if (user) {
    
    
      alert('欢迎 ' + user + ' 再次访问');
        } else {
    
    
          user = prompt('请输入你的名字:');
          if (user) {
    
    
            setCookie('username', user, 8);
          }
        }
      }


   Finalmente, después de cargar la página a través de window.onload, se ejecuta la función de devolución de llamada checkCookie()



    window.onload = function () {
    
    
       checkCookie();
      };


   El código completo es el siguiente:



<script>

 window.onload = function () {
    
    
        checkCookie();
      };

     
 function setCookie(cname, cvalue, exdays) {
    
    
    var d = new Date();
    d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
    var expires = 'expires=' + d.toGMTString();
    document.cookie = cname + '=' + cvalue + ';' + expires;
      }

    
 function getCookie(cname) {
    
    
    var name = cname + '=';
    var ca = document.cookie.split(';'); 
    for (var i = 0; i < ca.length; i++) {
    
    
       if (ca[i].indexOf(name) >= 0) {
    
    
          return ca[i].split('=')[1];
          }
        }
    return '';
      }

 function checkCookie() {
    
    
    var user = getCookie('username');
       if (user) {
    
    
         alert('欢迎 ' + user + ' 再次访问');
        } else {
    
    
          user = prompt('请输入你的名字:');
          if (user) {
    
    
            setCookie('username', user, 8);
          }
        }
      }
</script>


   Demostración de prueba: por ejemplo, al iniciar sesión en la interfaz por primera vez, ingrese el nombre de usuario



inserte la descripción de la imagen aquí



   Se puede ver que el nombre de usuario y Expires ingresados ​​en la prueba en este momento se agregaron con éxito a las cookies, y el ciclo de vida efectivo del usuario es de 8 días, que es el tercer parámetro en la función setCookie() en este momento.



inserte la descripción de la imagen aquí



   Cuando cierra el navegador sin borrar la cookie, y luego lo vuelve a abrir, dado que el sistema detecta que la cookie local tiene un nombre de usuario correspondiente, automáticamente ejecutará el contenido de la función alerta() en checkCookie(), es decir, la declaración de la ventana emergente.


   El próximo número continuará presentando ejemplos de varias aplicaciones en el desarrollo y prueba de software. Si no lo entiende, ¡bienvenido a chatear en privado!



inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_48591974/article/details/130577414
Recomendado
Clasificación