Maison développement back-end Tutoriel Python Python Selenium Cookie contourne le code de vérification pour obtenir un exemple de code de connexion_

Python Selenium Cookie contourne le code de vérification pour obtenir un exemple de code de connexion_

Apr 10, 2018 pm 03:22 PM
cookie python selenium

Cet article présente principalement le cookie Python Selenium contournant le code de vérification pour obtenir un exemple de code de connexion. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

J'ai déjà introduit l'utilisation de cookies pour. contournez le code de vérification pour obtenir la méthode de connexion. Il n'y a rien de redondant ici, nous ajouterons une analyse et une autre méthode pour implémenter la connexion.

1. Introduction des idées

1.1 Regardez le code directement, avec des commentaires détaillés

# FileName : Wm_Cookie_Login.py
# Author  : Adil
# DateTime : 2018/3/20 19:47
# SoftWare : PyCharm
from selenium import webdriver
import time
url = 'https://system.address'
def login():
  '''先定义一个正常登录的方法,获取登录前和登录后的cookie'''
  driver = webdriver.Chrome()
  driver.get(url)
  driver.maximize_window()
  cookieBefore = driver.get_cookies()
  # 打印登录前的cookie
  print(cookieBefore)
  time.sleep(2)
  driver.find_element_by_id("new-username").clear()
  driver.find_element_by_id("new-username").send_keys("username")
  driver.implicitly_wait(5)
  driver.find_element_by_id("new-password").clear()
  driver.find_element_by_id("new-password").send_keys("password")
  driver.find_element_by_id('home-right-login').click()
  driver.implicitly_wait(5)
  # 加一个休眠,这样得到的cookie 才是登录后的cookie,否则可能打印的还是登录前的cookie
  time.sleep(5)
  print("登录后!")
  cookiesAfter = driver.get_cookies()
  print("cookiesAfter:")
  print(cookiesAfter)
  # cookie 存放到了list,其中是dict
  # 对比发现登录后的cookie比登录前多了4个dict。
  # 如下代码分别是 1、4 、7、 8 
  len1 = len(cookiesAfter)
  print("len:%d" %len1)
  cookie1 = cookiesAfter[0]
  cookie2 = cookiesAfter[3]
  cookie3 = cookiesAfter[-2]
  cookie4 = cookiesAfter[-1]
  print("cookie1:%s" %cookie1)
  print("cookie2:%s" %cookie2)
  print("cookie3:%s" %cookie3)
  print("cookie4:%s" %cookie4)
  driver.quit()
  # 将获取的这四个cookie作为参数,传递给,使用cookie登录的函数,如下
  cookieLogin(cookie1,cookie2,cookie3,cookie4)
def cookieLogin(cookie1,cookie2,cookie3,cookie4):
  print("+++++++++++++++++++++++++")
  print("cookieLogin")
  print("cookie2:%s" % cookie2)
  print("cookie4:%s" % cookie4)
  driver = webdriver.Chrome()
  driver.maximize_window()
  # 清除一下cookie
  driver.delete_all_cookies()
  time.sleep(3)
  driver.get(url)
  # 打开浏览器后添加访问地址后,添加cookie
  driver.add_cookie(cookie1)
  driver.add_cookie(cookie2)
  driver.add_cookie(cookie3)
  driver.add_cookie(cookie4)
  print("cookies")
  # 打印一下cookie,与上面正常登录的cookie对比一下
  print(driver.get_cookies())
  time.sleep(5)
  # 刷新页面,可以看到已经是登录状态了,至此完成的使用cookie 的登录。
  driver.refresh()
  time.sleep(5)
  driver.quit()

if __name__ == "__main__":
  login()
Copier après la connexion
<. 🎜 >

1.2. Introduction du code

Comme le montre l'image, vous pouvez visualiser les cookies avant la connexion et après la connexion, les copier et les comparer

Comme le montre l'image, la comparaison est OK. Après vous être connecté, il y a quatre cookies en excès

Vérifiez la position des cookies en excès. les éléments 1, 4, 7 et 8g de la liste, donc retirez-le et donnez-le comme paramètre à la fonction de connexion aux cookies.

Remarque : Cet exemple décrit l'opération de connexion sans code de vérification, mais l'idée est la même. Cette démo a simplement pour but de présenter l'idée d'utiliser des cookies pour se connecter. Dans des applications de projets spécifiques, cela est très gênant.

2. Connexion pratique contournant le code de vérification

Ensuite, nous présenterons la connexion avec le code de vérification. Bien sûr, l'idée du traitement des cookies. est fondamentalement le même que celui introduit ci-dessus

Quelques éléments ont été ajoutés ici :

a. Utilisez le code de vérification pour vous connecter correctement pour la première fois et enregistrez les cookies avant et après. connectez-vous, comparez et analysez les cookies, et filtrez les cookies utiles

b. Écrivez le cookie dans le fichier yaml, afin qu'il puisse être utilisé directement lors de la connexion ultérieure à l'aide du cookie, sans avoir besoin de vous connecter normalement. à chaque fois comme décrit ci-dessus.

c. Lorsque vous utilisez des cookies pour vous connecter, il suffit de lire le cookie correspondant dans le fichier yaml. Remarque : Pour plus de détails sur les opérations sur les fichiers Yaml, consultez : Python Yaml Learning, qui fournit une introduction détaillée aux opérations de lecture et d'écriture de Yaml.

Remarque : ce qui est introduit ici est de saisir manuellement le code de vérification pour vous connecter correctement, puis d'obtenir le cookie. Dans les applications réelles, d'autres méthodes peuvent être utilisées pour obtenir des cookies

telles que : 1. L'exemple de connexion au jardin de blogs introduit précédemment : Python - Connexion par code de vérification de contournement des cookies Utilisez fiddler pour afficher les cookies

2 . Utiliser la navigation Par exemple, utilisez le plug-in Chrome comme indiqué ci-dessous pour exporter les cookies à des fins d'analyse.

L'idée est la même que ci-dessus, le code est le suivant :

2.1 Connectez-vous normalement pour obtenir des cookies valides


<🎜. >

# FileName : getLoginCookie.py
# Author  : Adil
# DateTime : 2018/3/20 21:43
# SoftWare : PyCharm
import yaml,time,os
from selenium import webdriver
url = &#39;https://system.address&#39;
driver = webdriver.Chrome()
driver.get(url)
driver.maximize_window()
time.sleep(2)
driver.find_element_by_id(&quot;username&quot;).clear()
driver.find_element_by_id(&quot;username&quot;).send_keys(&quot;username&quot;)
driver.implicitly_wait(5)
driver.find_element_by_id(&quot;password&quot;).clear()
driver.find_element_by_id(&quot;password&quot;).send_keys(&quot;password&quot;)
print(&quot;请输入验证码:&quot;)
# 手动输入验证码
security_code = input()
time.sleep(1)
driver.find_element_by_id(&quot;security_code&quot;).send_keys(security_code)
time.sleep(1)
driver.find_element_by_id(&#39;sign_btn&#39;).click()
driver.implicitly_wait(5)
# 加一个休眠,这样得到的cookie 才是登录后的cookie,否则可能打印的还是登录前的cookie
time.sleep(5)
cookiesAfter = driver.get_cookies()
len1 = len(cookiesAfter)
# 已经知道需要第几个cookie,这里需要第3个cookie,所以选择cookie下标为2
cookie1 = cookiesAfter[2]
# 获取当前文件所在路径
fileNamePath = os.path.split(os.path.realpath(__file__))[0]
# 拼接config.yaml文件绝对路径
yamlPath = os.path.join(fileNamePath,&#39;config.yaml&#39;)
# 以覆盖写入打开文件
fw = open(yamlPath,&#39;w&#39;,encoding=&#39;utf-8&#39;)
# 构建数据
data = {&quot;cookie1&quot;:cookie1}
# 装载写入yaml文件。
yaml.dump(data,fw)

driver.quit()
Copier après la connexion

2.2. Lire le fichier de configuration des cookies et utiliser les cookies pour vous connecter au système


# FileName : stlUseCookieLogin.py
# Author  : Adil
# DateTime : 2018/3/20 21:48
# SoftWare : PyCharm
from selenium import webdriver
import time,yaml,os
url = &#39;https://system.address&#39;
driver = webdriver.Chrome()
driver.maximize_window()
driver.delete_all_cookies()
time.sleep(3)
driver.get(url)

fileNamePath = os.path.split(os.path.realpath(__file__))[0]
yamlPath = os.path.join(fileNamePath,&#39;config.yaml&#39;)
# 读取yaml 文件
f = open(yamlPath,&#39;r&#39;,encoding=&#39;utf-8&#39;)
cont = f.read()
conf = yaml.load(cont)
# 读取cookie值
cookie1 = conf.get(&quot;cookie1&quot;)
# 添加cookie
driver.add_cookie(cookie1)
print(&quot;cookies&quot;)
print(driver.get_cookies())
time.sleep(5)
# 这里重新获取地址,因为有些系统,未登录状态,链接会跳转,这里就是,登录状态后,才能正确打开指定网址,所以这里要再次指定网址。
driver.get(url)
# 刷新查看登录状态
driver.refresh()
time.sleep(5)
driver.quit()
Copier après la connexion


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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quels sont les avantages et les inconvénients des modèles ? Quels sont les avantages et les inconvénients des modèles ? May 08, 2024 pm 03:51 PM

Quels sont les avantages et les inconvénients des modèles ?

Comment télécharger Deepseek Xiaomi Comment télécharger Deepseek Xiaomi Feb 19, 2025 pm 05:27 PM

Comment télécharger Deepseek Xiaomi

Google AI annonce Gemini 1.5 Pro et Gemma 2 pour les développeurs Google AI annonce Gemini 1.5 Pro et Gemma 2 pour les développeurs Jul 01, 2024 am 07:22 AM

Google AI annonce Gemini 1.5 Pro et Gemma 2 pour les développeurs

Pour seulement 250$, le directeur technique de Hugging Face vous apprend étape par étape comment peaufiner Llama 3 Pour seulement 250$, le directeur technique de Hugging Face vous apprend étape par étape comment peaufiner Llama 3 May 06, 2024 pm 03:52 PM

Pour seulement 250$, le directeur technique de Hugging Face vous apprend étape par étape comment peaufiner Llama 3

Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM May 06, 2024 pm 04:43 PM

Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM

Un guide complet sur le débogage et l'analyse des fonctions Golang Un guide complet sur le débogage et l'analyse des fonctions Golang May 06, 2024 pm 02:00 PM

Un guide complet sur le débogage et l'analyse des fonctions Golang

Comment lui demandez-vous Deepseek Comment lui demandez-vous Deepseek Feb 19, 2025 pm 04:42 PM

Comment lui demandez-vous Deepseek

Comment enregistrer la fonction d'évaluation Comment enregistrer la fonction d'évaluation May 07, 2024 am 01:09 AM

Comment enregistrer la fonction d'évaluation

See all articles