Des centaines d'identifiants et de mots de passe Yahoo Business. Est-il possible de se connecter avec cet ID de liste Excel et ce mot de passe? Beaucoup de choses que la liste Excel n'est pas mise à jour même si le mot de passe est modifié. Par conséquent, la connexion est confirmée par grattage.
J'ai pensé que c'était facile, mais je suis resté un peu coincé, alors je vais l'écrire.
Conclusion
Par exemple Sans passer à l'écran de connexion directe https://business.yahoo.co.jp/ ↓ https://login.bizmanager.yahoo.co.jp/login Transition dans l'ordre de.
En regardant la source de l'écran de connexion Yahoo Business, il y a de nombreux éléments cachés. Il semble que si ce .crumb est vide, vous ne pouvez pas vous connecter (rien ne se passe). Ainsi, même si vous entrez l'ID et le mot de passe corrects avec le .crub masqué vide, rien ne se passe, et même si vous entrez un ID et un mot de passe incorrects, l'écran «ID et mot de passe incorrects» ne s'affiche pas. ..
Écran de connexion Yahoo Business masqué.la miette n'a aucune valeur
<form method="post" action="/login.php" autocomplete="off" name="login_form" onsubmit="return checkMultipleSubmit();">
<input type="hidden" name="url" value="https://business.yahoo.co.jp/" data-rapid_p="1">
<input type="hidden" name="action" value="login" data-rapid_p="2">
<input type="hidden" name=".flow" value="" data-rapid_p="3">
<input type="hidden" name=".crumb" value="" data-rapid_p="4">
https://business.yahoo.co.jp/ ↓ https://login.bizmanager.yahoo.co.jp/login Lors de la transition dans l'ordre de Une valeur a été saisie dans le .crub masqué.
Yahoo Business masqué.Une fois la valeur de la session définie en miettes
<form method="post" action="/login.php" autocomplete="off" name="login_form" onsubmit="return checkMultipleSubmit();">
<input type="hidden" name="url" value="https://business.yahoo.co.jp/" data-rapid_p="1">
<input type="hidden" name="action" value="login" data-rapid_p="2">
<input type="hidden" name=".flow" value="" data-rapid_p="3">
<input type="hidden" name=".crumb" value="dD14Q0R0ZkImc2s9eGlqMXh3dTRLcVJzM29KQ3pLMlIwaHNVcVZvLQ==" data-rapid_p="4">
Si vous vous connectez après cet état, vous pourrez vous connecter en grattant.
environnement Windows10 Python3.8.3 Selenium Google Chrome
-Il est supposé que le pilote chrome est défini dans le pilote. ・ Time.sleep est inclus car il peut être bloqué si vous avancez trop vite.
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
#N'allez pas directement à l'écran de connexion
driver.get("https://business.yahoo.co.jp/")
driver.get("https://login.bizmanager.yahoo.co.jp/login.php")
#J'ai créé une fonction pour assurer sendkey.
move_textbox_id(driver,"user_name","ID ici")
move_textbox_id(driver,"password","Mot de passe ici")
#Je ne veux pas aller trop vite et être bloqué, alors allez-y lentement.
time.sleep(1)
element = driver.find_element_by_xpath("//*@id='bidlogin']/div/div/form/fieldset/div[3]/input")
element.click()
try:
#Lorsque j'ai trouvé le texte du lien pour la déconnexion, j'ai effectué une connexion OK.
WebDriverWait(driver,8).until(EC.presence_of_element_located((By.LINK_TEXT, "Se déconnecter")))
except:
#Que faire si le lien de déconnexion est introuvable pour une raison quelconque
def move_textbox_id(driver, id, atai):
start = time.time()
while driver.find_element_by_id(id).get_attribute('value')!=atai:
driver.find_element_by_id(id).clear()
time.sleep(1)
#Entrez une valeur avec la touche d'envoi
driver.find_element_by_id(id).send_keys(atai)
time.sleep(1)
if time.time()-start > 5 :
return False
return True
C'était difficile de penser que c'était facile parce que je viens de me connecter. Surtout lorsque vous travaillez en mode secret, si vous vous connectez directement depuis l'écran de connexion, vous ne pourrez jamais vous connecter. Certes, la première connexion a été rejetée même lors de la connexion manuelle au lieu de grattage. Je n'étais pas inquiet parce que je pensais que je déconnais avec la copie.