Ich möchte automatisch an Online-Kursen mit Python + Selen teilnehmen!

Ich möchte automatisch an Online-Kursen teilnehmen

Ich denke, viele Schüler nehmen derzeit an Online-Kursen teil.

Ich fragte mich, ob ich einen automatischen Anwesenheitscode schreiben könnte, wenn die Anwesenheitsbestätigung eine Online-Klasse wäre, die nur "an einem Zoom-Meeting teilnahm".

Zur Erinnerung, es ist eine ** Geschichte **. Natürlich ** Lass uns den Unterricht richtig nehmen! ** Lol

Nun, das Hauptthema.

Ich möchte "** vor der Unterrichtszeit am Zoom-Meeting teilnehmen " und " das Meeting kurz vor Ende der Unterrichtszeit verlassen **".

Was die Zeit betrifft, scheint es ganz so, wenn Sie Schlaf verwenden. Die Frage ist ** wie man in das Meeting kommt **.

Zoom kann über den Browser an der Besprechung teilnehmen. Ich bin daher der Meinung, dass eine Teilnahme am Meeting sehr wahrscheinlich ist, wenn Sie den Browser bedienen können.

Vorbereitungen

Python + Selen wird für den Browserbetrieb verwendet. Ich benutze Selen zum ersten Mal, aber ich habe es leicht mit Web Scraping Tutorial Video in Python auf Youtube gelernt.

Mac und Anaconada sind übrigens bereits installiert, Python 3.7.4. Ich habe JupyterLab verwendet, muss es aber nicht.

Nachdem Sie nun wissen, wie Sie es verwenden, können Sie Zoom hosten, ein Testmeeting starten und die URL abrufen.

Installieren Sie zunächst Selen und öffnen Sie die URL.

test.py


#Wenn nicht installiert, installieren Sie es
!pip install selenium

from selenium import webdriver
import time

browser = webdriver.Chrome()
browser.implicitly_wait(3)

browser.get("Zoom-Test-Meeting-URL")
time.sleep(5)

Ich habe es sicher geöffnet.

Der folgende Text wird zusammen mit der Besprechungs-ID usw. angezeigt. 「If you have Zoom Client installed, launch meeting. Otherwise, download and run Zoom.If you cannot download or run the application, join from your browser.」

Wenn Sie versuchen, Zoom mit einem Browser zu verbinden, wird dieser durch reCAPTCHA (Bot-Gegenmaßnahme) blockiert. Versuchen Sie daher, den installierten Zoom zu starten.

Klicken Sie für Chrome mit der rechten Maustaste auf "Überprüfen" und erhalten Sie den vollständigen Xpath von "Meeting starten". Geben Sie danach das Element mit xpath an und klicken Sie auf.

test.py


PATH='/html/body/div[2]/div/div/div/div/div[2]/h3[1]/a[1]'
launchButton = browser.find_element_by_xpath(PATH)
time.sleep(3)
launchButton.click()

Wenn ausgeführt, "Möchten Sie zoom.us öffnen? Abbrechen. Zoom öffnen" Popup wurde angezeigt.

Es sieht aus wie ein Bestätigungs-Popup (Bestätigen), also scheint es mit switch_to.alert ganz so zu sein.

JavaScript alerts, prompts and confirmations

test.py


alert = browser.switch_to.alerttext = alert.text
alert.dismiss()

Wenn du rennst Message: no such alert Nunu? ??

Pop Schritt nach oben

Nach dem Überprüfen und Untersuchen verschiedener Dinge kann Selenium nur das JavaScripts-Popup bedienen. Es wird das Muster des Systemdialogs angezeigt.

Dann fand ich die Beschreibung Systemdialog kann nicht mit Selen betrieben werden.

Anschließend können Sie festlegen, dass der Systemdialog nicht angezeigt wird. Lesen Sie daher So blenden Sie den Bestätigungsbildschirm beim Starten einer externen Anwendung in Chrome aus und lassen Sie den Dialog beim Starten einer externen Anwendung aus. Einstellen.

defaults write com.google.Chrome ExternalProtocolDialogShowAlwaysOpenCheckbox -bool true

Bedienen Sie den Browser selbst, stellen Sie ihn so ein, dass der Dialog beim nächsten Mal nicht mehr angezeigt wird, und führen Sie ihn mit Selenium erneut aus.

Fehler. Ich werde gefragt: "Möchtest du es beim nächsten Mal weglassen?" .. Ich frage mich, ob ich zum ersten Mal die Zoomseite in einem mit Selen geöffneten Fenster besuche.

Fazit

Ich habe versucht, Safari anstelle von Chrome zu verwenden, aber es wurde durch einen ähnlichen Systemdialog blockiert. Ich konnte es nicht so machen, wie ich es erwartet hatte, aber es war eine gute Studie, weil ich zum ersten Mal Selen verwendet habe. Zur Zeit kann ich nur sagen: "** Lass uns richtig am Unterricht teilnehmen !! **" das ist alles. (Übrigens ist es nach 4 Uhr morgens. Unterricht ...)

Nachtrag

Ich habe mit den Chrome-Einstellungen gespielt, um den Bestätigungsbildschirm beim Starten einer externen Anwendung auszublenden. Ich mache mir jedoch ein wenig Sorgen um die Sicherheit, daher werde ich das Problem beheben.

defaults write com.google.Chrome ExternalProtocolDialogShowAlwaysOpenCheckbox -bool false

Als ich hingerichtet habe, blieb es verborgen. Nach dem Ausführen habe ich Chrome beendet, es erneut geöffnet, Cookies gelöscht und bin dann zurückgekehrt. Seien Sie versichert.

Recommended Posts

Ich möchte automatisch an Online-Kursen mit Python + Selen teilnehmen!
Ich möchte mit Python debuggen
Ich möchte Protokolle mit Python analysieren
Ich möchte mit aws mit Python spielen
Ich möchte ein Spiel mit Python machen
Ich möchte Temporäres Verzeichnis mit Python2 verwenden
#Unresolved Ich möchte Gobject-Introspection mit Python3 kompilieren
Ich möchte APG4b mit Python lösen (Kapitel 2)
Ich möchte mit Python in eine Datei schreiben
Ich habe ein Tool zum automatischen Durchsuchen mehrerer Websites mit Selenium (Python) erstellt.
Ich war süchtig danach, 2020 mit Selen (+ Python) zu kratzen
Ich möchte mit Python-Datenklasse nach hinten erben
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte Lambda mit Python auf Mac AWS!
Ich möchte einen Quantencomputer mit Python betreiben
Ich möchte Daten mit Python analysieren können (Teil 3)
Ich möchte eine andere Version von Python mit pyvenv angeben
Ich möchte Daten mit Python analysieren können (Teil 1)
Ich möchte Daten mit Python analysieren können (Teil 4)
Ich möchte Daten mit Python analysieren können (Teil 2)
[Python] Ich möchte die Option -h mit argparse verwenden
Ich möchte ○○ mit Pandas machen
Ich möchte einen Platzhalter verwenden, den ich mit Python entfernen möchte
Ich möchte das Wetter mit LINE bot feat.Heroku + Python wissen
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)
Ein Memorandum beim automatischen Erwerb mit Selen
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
Ich möchte den vollständigen Text mit elasticsearch + python durchsuchen
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
[Einführung] Ich möchte mit Python einen Mastodon-Bot erstellen! 【Anfänger】
So installieren Sie Chrome Driver für Chrome automatisch mit Python + Selenium + Chrome
Ich habe versucht, automatisch Bilder von Kanna Hashimoto mit Python zu sammeln! !!
Ich habe versucht, mich automatisch mit Selen bei Twitter anzumelden (RPA, Scraping)
Ich möchte Objekte mit OpenCV erkennen
Ich möchte einen Blog mit Jupyter Notebook schreiben
Ich möchte ein Glas aus Python verwenden
Ich wollte ABC160 mit Python lösen
Ich möchte eine Python-Umgebung erstellen
Ich möchte eine Pip-Installation mit PythonAnywhere durchführen
[Python] Betreiben Sie den Browser automatisch mit Selenium
Ich wollte ABC172 mit Python lösen
Ich wollte unbedingt mit Selen kopieren
Ich möchte es mit Python Lambda Django machen, aber ich werde aufhören
Ich möchte Twitter mit Python twittern, bin aber süchtig danach
Mit Docker durchgeführte Umgebungswartung (Ich möchte GrADS in Python nachbearbeiten
[Outlook] Ich habe versucht, mit Python automatisch eine tägliche Berichtsmail zu erstellen
Ich möchte Dunnetts Test in Python machen
Ich wollte den NOMURA Contest 2020 mit Python lösen
Ich möchte mich mit Schlüsselwortargumenten von Python merken
Ich möchte mit Python ein Fenster erstellen
[Python] Ich möchte 7DaysToDie von Discord aus verwalten! 1/3
Ich möchte datetime.datetime.now () auch mit pytest verspotten!
Ich möchte 100 Datenwissenschaften mit Colaboratory schlagen
Ich wollte Python 3.4.3 mit Homebrew + pyenv installieren
Ich möchte OREMO mit setParam sein!
Ich habe versucht, CloudWatch-Daten mit Python abzurufen