Javascript - Application d'acquisition et de stockage de cookies

   Dans le blog précédent, j'ai expliqué comment utiliser Selenium pour créer un pool de cookies, automatiser la connexion, obtenir des informations, etc. Alors qu'est-ce qu'un cookie ? Quelle est sa fonction ? Ici, une brève introduction est répétée.


   Un cookie est un petit fichier texte que le navigateur stocke sur l'ordinateur de l'utilisateur. Les informations utilisateur cryptées, le délai d'expiration, etc. sont stockés dans ce fichier, et un cookie sera apporté avec chaque demande. Lors de la prochaine visite de l'utilisateur, le fichier cookie local et l'URL seront envoyés ensemble au serveur, et le serveur l'utilisera pour juger du statut de l'utilisateur. En raison de la capacité limitée des cookies, seulement 4 Ko, il est parfois impossible d'y stocker toutes les informations de l'utilisateur, de sorte que la session peut résoudre ce problème, le serveur interroge d'autres informations de l'utilisateur dans la session via les informations d'identité, de sorte que tous nos les opérations seront préservées. Voici un exemple pour montrer comment configurer une session.



insérez la description de l'image ici



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)


   Avant d'expliquer l'acquisition et le stockage des cookies, introduisez brièvement la structure de base des cookies dans le navigateur.



   On peut voir que les principaux composants sont la paire clé-valeur Nom-Valeur et le cycle de vie de Expires, c'est-à-dire le délai d'expiration.



insérez la description de l'image ici



   Obtenir le cookie : après avoir créé et lu l'objet Document document.cookie, divisez-le en un tableau avec un point-virgule, puis ajoutez une condition de jugement via une boucle for. Lorsque le nom correspondant est trouvé, le nom d'utilisateur correspondant est renvoyé. Renvoie null si introuvable.



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 '';
  }


   Enregistrer et définir le cookie : créez un objet temporel chinois standard, puis définissez le cycle de vie du cookie via la méthode setTime(), où getTime() doit convertir l'objet temporel en un horodatage de Greenwich (en millisecondes), et enfin put L'horodatage est converti en heure standard GMT via la méthode 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;
}


insérez la description de l'image ici



insérez la description de l'image ici



insérez la description de l'image ici



   Vérification des cookies : ajoutez des conditions de jugement via les fonctions de rappel getCookie() et setCookie(). Lorsqu'un cookie local est détecté, une boîte de dialogue de bienvenue s'affiche automatiquement. Sinon, vous devez saisir le nom d'utilisateur et l'enregistrer dans le cookie.

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


   Enfin, après le chargement de la page via window.onload, la fonction de rappel checkCookie() est exécutée



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


   Le code complet est le suivant :



<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>


   Démonstration de test : Par exemple, lors de la première connexion à l'interface, entrez le nom d'utilisateur



insérez la description de l'image ici



   On peut voir que le nom d'utilisateur et les expirations entrés dans le test tout à l'heure sont ajoutés avec succès aux cookies, et le cycle de vie effectif de l'utilisateur est de 8 jours, ce qui est le troisième paramètre de la fonction setCookie() tout à l'heure.



insérez la description de l'image ici



   Lorsque vous fermez le navigateur sans supprimer le cookie, puis que vous le rouvrez, puisque le système détecte que le cookie local a un nom d'utilisateur correspondant, il exécutera automatiquement le contenu de la fonction alert() dans checkCookie(), c'est-à-dire le déclaration de fenêtre contextuelle.


   Le prochain numéro continuera à présenter des exemples de diverses applications dans le développement et les tests de logiciels. Si vous ne comprenez pas, bienvenue pour discuter en privé !



insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/weixin_48591974/article/details/130577414
conseillé
Classement