2 2
Maison > Article > développement back-end > Un exemple de tutoriel sur l'utilisation de la bibliothèque Request pour simuler la connexion en Python
Un formulaire de connexion aussi simple (et non sécurisé) est rarement vu. Le formulaire de connexion à la bibliothèque de sous-titres est le suivant, avec le contenu non pertinent omis :
1 <form class="login-form" action="/User/login.html" method="post">2 <input type="hidden" name="referer" value="www.zimuku.net/">3 <input type="text" id="inputEmail" datatype="*1-16" value="" name="username">4 <input type="password" id="inputPassword" datatype="*6-20" name="password">5 <input type="checkbox" name="isremember" value="1" checked="">6 <button type="submit" class="btn submit-btn">登 陆</button>7 </form>
Grâce à l'analyse de capture de paquets, il peut être constaté que le nom d'utilisateur et le mot de passe ne sont pas cryptés :
Utilisez POST directement pour simuler la connexion :
1 import requests 2 from bs4 import BeautifulSoup 3 4 url='' 5 data={'referer':'','username':'***','password':'***','isremember':'1'} 6 7 #创建会话 8 session=requests.session() 9 #模拟登录10 r=session.post(url,data=data)11 #解析页面12 bs=BeautifulSoup(r.text,'lxml')13 14 print(bs.body.text) #登录成功!页面自动 跳转 等待时间: 1
Connecté avec succès, analysé le code js dans la page renvoyée et trouvé :
href = document.getElementById('href').href; location.href = href;
Indique que la page vers laquelle accéder se trouve dans le lien hypertexte avec l'identifiant href :
<a id="href" href="/User/index.html">跳转</a>
Obtenir le page pour accéder à la page, puis si le statut de connexion peut être conservé lorsque vous essayez d'ouvrir une nouvelle page :
1 href=''+bs.find(id='href').attrs['href']2 r2=ss.get(href)3 print(BeautifulSoup(r2.text,'lxml').title.text)#首页 - 用户中心 - 字幕库(zimuku.net)
Les mots "Page d'accueil - Centre utilisateur" sont imprimés, et le statut de connexion est maintenu avec succès.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!