So senden Sie Microsoft Forms automatisch mit Python (Mac-Version)

Einführung

Vor kurzem musste ich aufgrund des Einflusses von "are" in meiner Situation jeden Morgen früh Microsoft Forms einreichen. Da ich es als "umständlich" betrachtete, entschied ich mich, die automatische Antwort von Forms zu implementieren, während ich Python Web Scraping lernte.

1. Erstellungsumgebung ・ MacOS X Catalina 10.15.7 ・ Chrome 86.0.4240.80 ・ Python 3.7.4 ・ Homebrew

2. Modulinstallation

Installieren Sie Selen mit der Eingabeaufforderung.

pip install selenium

Installieren Sie den Webdrider mit Homebrew. Wenn Sie kein Homebrew haben, installieren Sie bitte zuerst Homebrew.

brew install chormedriver

3. Codeerstellung

Importieren Sie den Web-Treiber aus Selen. Importieren Sie den Schlaf, um ihn zu verarbeiten, und halten Sie ihn für Sekunden an.

form_send


from selenium import webdriver
from time import sleep

Es gibt ein Modul in Selen selbst, das auf die Verarbeitung wartet, aber als ich es versuchte, funktionierte der Vorgang nach dem Seitenübergang nicht, sodass ich den Vorgang mit sleep () beenden werde. In den folgenden Fällen wird die Verarbeitung für 10 Sekunden gestoppt.

sleep(10)

Starten Sie den Webbrowser und geben Sie die Formular-URL in *** von url = '***' ein.

form_send


browser = webdriver.Chrome()
url = '***'
browser.get(url)

Wenn Sie die URL der Formulare eingeben, werden Sie zum Anmeldebildschirm weitergeleitet. Aktivieren Sie daher das Element des Textfelds, in das Sie Ihre E-Mail-Adresse eingeben. Öffnen Sie die Entwicklertools mit ⌘ + Option + i und drücken Sie die Markierung unten links oben, um das Element anzugeben. image.png Bei der Prüfung verwendet Microsoft Forms die ID von i0116. (Es hat sich möglicherweise geändert, daher wird empfohlen, es zum Zeitpunkt der Erstellung zu überprüfen.) Sie können ein Element aus der ID mit browser.find_element_by_id () angeben. Sie können das Textfeld mit .send_keys (E-Mail) ausfüllen. Bitte geben Sie Ihre eigene E-Mail-Adresse an. Suchen Sie die Schaltflächen-ID auf die gleiche Weise. Klicken Sie mit .click () auf das Element.

form_send


browser.find_element_by_id('i0116').send_keys(email)
browser.find_element_by_id('idSIButton9').click()
sleep(3)

Rufen Sie den Passwortbildschirm und den Bestätigungsbildschirm für die Anmeldewartung auf dieselbe Weise auf.

form_send


browser.find_element_by_id('i0118').send_keys(password)
browser.find_element_by_id('idSIButton9').click()
sleep(3)

browser.find_element_by_id('idSIButton9').click()
sleep(3)

Dann gelangen Sie zum Antwortbildschirm für Formulare.

Da id im Antwortteil von Formularen nicht angegeben ist, geben Sie xpath an.

・ Wenn Sie das Optionsfeld drücken möchten

browser.find_elements_by_xpath("//input[@value='***']")[0].click()

Suchen Sie für *** den Wert des Optionsfelds, das Sie mit den Entwicklertools eingeben möchten, und geben Sie ihn ein.

・ Bei der Eingabe eines Textfelds

browser.find_elements_by_xpath("//input[@class='***']")[0].click()

Suchen Sie für *** die Klasse des Optionsfelds, das Sie mit den Entwicklertools eingeben möchten, und geben Sie es ein.

In browser.find_elements_by_xpath () werden diejenigen aufgelistet und abgerufen, die für den angegebenen xpath gelten. Der erste ist [0], der zweite ist [1] und der dritte ist [2]. .. Wenn Sie also ein Zeichen in das zweite Textfeld einfügen möchten, wird [0] zu [1].

Drücken Sie die Senden-Taste, wenn Sie fertig sind. Geben Sie den Code ein.

browser.find_element_by_xpath("//button[@title='Senden']").click())

Schließen Sie zum Schluss die Browser-Registerkarte und beenden Sie das Programm

browser.quit()

Ganzer Quellcode

from selenium import webdriver
from time import sleep

email = 'Treten Sie selbst ein'
password = 'Treten Sie selbst ein'
url = 'Treten Sie selbst ein'


browser = webdriver.Chrome()
browser.get(url)

browser.find_element_by_id('i0116').send_keys(email)
browser.find_element_by_id('idSIButton9').click()
sleep(3)

browser.find_element_by_id('i0118').send_keys(password)
browser.find_element_by_id('idSIButton9').click()
sleep(3)

browser.find_element_by_id('idSIButton9').click()
sleep(3)


#Dies hängt davon ab, was Sie in Formulare eingeben möchten.
browser.find_elements_by_xpath("//input[@value='Treten Sie selbst ein']")[0].click()
browser.find_elements_by_xpath("//input[@value='Treten Sie selbst ein']")[0].click()
sleep(3)

browser.find_element_by_xpath("//button[@title='Treten Sie selbst ein']").click()
sleep(10)

browser.quit()

4. Geben Sie die Zeit mit cron an

Ich miete keinen Mietserver und er läuft automatisch mit cron auf dem Mac.

Entsperren Sie die Sicherheit und den Datenschutz in den Systemeinstellungen und wählen Sie "/ usr / sbin / crn" von + aus, um sie zu öffnen.

image.png

Öffnen Sie ein Terminal und geben Sie "crontab -e" ein. ・ Bei täglicher Ausführung um 6 Uhr (* bedeutet, alle auszuführen)

#Minuten, Stunden, Tage, Monate, Tage, Python Das Verzeichnis, in dem es gespeichert ist (geben Sie unbedingt den absoluten Pfad ein).
  0   6    *  *   *   python form_send

Da cron nicht im Ruhezustand läuft, stellen Sie es so ein, dass es vorher nur 1 Minute lang aufwacht. Wählen Sie in den Systemeinstellungen unter Energieeinsparung einen Zeitplan aus und geben Sie die Uhrzeit ein. image.png (Wenn Sie es mehrmals am Tag ausführen und erst dann starten möchten, können Sie pmset verwenden.)

5. Nachtrag

Ich habe zum ersten Mal einen Artikel geschrieben. Das Schreiben eines Artikels erforderte viel Geduld, aber ich denke, es war gut, um das Verständnis zu verbessern und die Zeit totzuschlagen. Ich habe eine automatische Antwort für Microsoft-Formulare mit einem ziemlich unreinen Motiv erstellt, aber ich würde mich sehr freuen, wenn Sie sie für eine gute verwenden könnten. Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

So senden Sie Microsoft Forms automatisch mit Python (Mac-Version)
So ändern Sie die Python-Version
Beenden bei Verwendung von Python in Terminal (Mac)
So installieren Sie Python mit Anaconda
So erhalten Sie die Python-Version
So bereiten Sie die Python-Entwicklungsumgebung vor [Mac]
So löschen Sie Python 2.x auf einem Mac.
So überprüfen Sie die Version von opencv mit Python
[Version 2020] So installieren Sie Python3 auf EC2 von AWS
So geben Sie die TLS-Version in Python-Anforderungen an
So installieren Sie Python
So installieren Sie Python
So erstellen Sie eine Umgebung für die Verwendung mehrerer Python-Versionen auf einem Mac
So richten Sie eine Python-Umgebung mit pyenv ein
So erstellen Sie ein Python-Paket mit VS Code
So rufen Sie mehrere Arrays mit Slice in Python ab.
[Einführung in Python] Wie stoppe ich die Schleife mit break?
So führen Sie einen Befehl mit einem Unterprozess in Python aus
[Einführung in Python] So schreiben Sie sich wiederholende Anweisungen mit for-Anweisungen
[Neueste Version 2020.8] So installieren Sie Python
So installieren Sie Python [Windows]
python3: Verwendung der Flasche (2)
So installieren Sie Tabpy 1.0 (Version 2020-01)
[Python] Verwendung von Liste 1
So aktualisieren Sie Pythons Tkinter auf 8.6
Mit Python auf Twitter posten
Wie benutzt man Python Argparse?
Starten Sie mit Python zu Selen
Ändern Sie die Python-Version mit pyenv
Aktualisieren Sie die Python, die Sie auf Ihrem Mac hatten, auf 3.7-> 3.8
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
So führen Sie Notepad ++ Python aus
Einführung in Python (Python-Version APG4b)
Wie man in Python entwickelt
[Python] Wie man Skalar beurteilt
[Python] Verwendung von input ()
Wie benutzt man Python Lambda?
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
Verwenden von OpenCV mit Python @Mac
Verwendung von Python-Bytes
[Circuit x Python] So lösen Sie Schaltungsgleichungen symbolisch mit sympy
So verschieben Sie ein zweidimensionales Array nur mit Python [Hinweis]
So aktualisieren Sie FC2-Blogs usw. mithilfe von XMLRPC mit Python
So ermitteln Sie die kumulative Summe für jede Gruppe mithilfe von DataFrame in Spark [Python-Version]
[Python] Wie man MP3-Daten fFT
Python: So verwenden Sie Async mit
So erstellen Sie eine Python-Umgebung aus Pyenv in einer Mac-Umgebung (El Capitan)
[Python] Verwendung der Pandas-Serie
So sammeln Sie Bilder in Python
Verwendung von Anfragen (Python Library)
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
Verwendung von SQLite in Python
[Einführung in Python] So analysieren Sie JSON
So installieren Sie OpenCV auf einem Mac
So erstellen Sie eine Python-Umgebung mit Virtualenv unter Ubuntu 18.04 LTS
Erste Schritte mit Python