Connectez-vous à Yahoo Business avec Selenium Python

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

Ne vous connectez pas directement depuis l'écran de connexion. Accédez à l'écran de connexion à partir d'une autre page de Yahoo et connectez-vous.

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.

Recommended Posts

Connectez-vous à Yahoo Business avec Selenium Python
Grattage au sélénium en Python
Grattage avec du sélénium en Python
J'étais accro au grattage avec Selenium (+ Python) en 2020
Scraping avec Selenium en Python (Basic)
Comment se connecter à AtCoder avec Python et soumettre automatiquement
Essayez de vous connecter à qiita avec Python
Sortie du journal Python vers la console avec GAE
Comment utiliser BigQuery en Python
Connectez-vous à Slack à l'aide de requêtes en Python
Pour faire fonctionner la station d'horodatage en Python
J'ai essayé de me connecter automatiquement à Twitter avec du sélénium (RPA, scraping)
Connectez-vous à un serveur distant avec SSH
Connectez-vous facilement à AWS avec plusieurs comptes
ScreenShot avec Selenium (édition Python)
Comment utiliser tkinter avec python dans pyenv
Grattage avec du sélénium [Python]
Comment convertir / restaurer une chaîne avec [] en python
Comment faire un calcul de hachage avec Salt en Python
Expliquez en détail comment créer un son avec python
Comment exécuter des tests avec Python unittest
Super Primer to python - Premiers pas avec python3.5 en 3 minutes
Je veux travailler avec un robot en python.
Journal de sortie au format JSON avec journalisation standard Python
Comment télécharger des fichiers depuis Selenium of Python dans Chrome
Comment passer en mode smartphone avec Python + Selenium + Chrome
Connectez-vous à BigQuery avec Python
Pour vider stdout en Python
Exploitez LibreOffice avec Python
Grattage avec chromedriver en python
Débogage avec pdb en Python
Connectez-vous au site Web en Python
Connectez-vous à Wikipedia avec Python
Publiez sur Slack avec Python 3
Python: travailler avec Firefox avec du sélénium
Commencez à Selenium en utilisant python
Grattage avec Tor en Python
Tweet avec image en Python
Combiné avec ordinal en Python
Parler avec Python [synthèse vocale]
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
Grattage avec Selenium + Python Partie 2
Comment développer en Python
Publier sur Slack en Python
Transmettez le cookie de session de connexion obtenu à partir des requêtes Python au navigateur Selenium pour vous connecter.
Que faire lorsque ʻarguments [0] .scrollIntoView (); `échoue dans python sélénium
[Road to Intermediate Python] Installer des packages en masse avec pip
Comment extraire n'importe quel rendez-vous dans Google Agenda avec Python
Comment manipuler le DOM dans iframe avec Selenium
Comment gratter en quelques secondes avec le sélénium de Python
Je n'arrive pas à me connecter à la page d'administration avec Django 3
[Selenium] Changer la destination de sortie du journal lors de l'exécution de phantomjs avec python3
Précautions lors de l'utilisation de Python avec AtCoder
Choses à garder à l'esprit lors de l'utilisation de cgi avec python.
Reconnaissance des nombres dans les images avec Python
[Python] Comment faire PCA avec Python
Python: comment utiliser async avec
Créer Apache Log CSV avec Python
GOTO en Python avec Sublime Text 3
Travailler avec LibreOffice en Python: import