[PYTHON] Ein System, das automatisch an Zoomklassen der Universität teilnimmt

Vorwort

Vermeiden wir Missbrauch, z. B. keinen Zugriff darauf und keine Teilnahme daran Versuchen Sie, das Universitätsklassensystem wie Manaba nicht anzugreifen, und befolgen Sie die Zugriffsmethoden.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from datetime import datetime

four_time=str(datetime.now().strftime("%H%M"))
four_time=int(four_time)

#Datenaufbereitung(Wechseln Sie zu Ihrem Thema)
data={"Monday":{1:"Theorie des Familienwohls",3:"Wohlfahrts- und Lebensumwelttheorie"},"Tuesday":{2:"Anwaltschaft und Vormundschaft für Erwachsene"},"Wednesday":{2:"Spezialübung für soziale Wohlfahrt I."},
      "Thursday":{1:"Psychische Gesundheits- und Sozialsysteme und -dienste",3:"Schulung zur Umfrage zur sozialen Wohlfahrt",5:"Sozialarbeitsübung II"},"Friday":{1:"Gemeinwohltheorie",2:"Anleitung zur Ausbildung in Sozialarbeit"}}

youbi=datetime.now().strftime('%A')


#Öffnen Sie den Browser.
driver_path = './chromedriver'
driver = webdriver.Chrome(driver_path)
#Öffnen Sie den TOP-Bildschirm der Google-Suche.
driver.get("Geben Sie die Manaba-URL Ihrer Universität ein")
#Warten Sie 1 Sekunde
time.sleep(1)
#Geben Sie Ihre Login-ID ein

login_id = driver.find_element_by_id("mainuserid")
login_id.send_keys("Geben Sie die Schulregistrierungsnummer ein")

login_id = driver.find_element_by_name("password")
login_id.send_keys("Passwort eingeben")


#Klicken Sie auf die Schaltfläche Anmelden
next_btn = driver.find_element_by_name("login")
next_btn.click()

#Warten Sie 1 Sekunde
time.sleep(1)

youbi_list = data[youbi]
four_time=1320

if four_time <= 950:
    class_name = youbi_list[1]
elif 1025<= four_time<=1050:
    class_name = youbi_list[2]
elif 1245<= four_time<=1330:  
    class_name = youbi_list[3]
elif 1610<= four_time<=1659:  
    class_name = youbi_list[4]
elif 1600<= four_time<=1659:  
    class_name = youbi_list[5]


print(four_time)
    
print(class_name)


continue_link = driver.find_element_by_link_text(class_name)
continue_link.click()


try:
    driver.find_element_by_partial_link_text(u"ZOOM").click()
except:
    try:
        driver.find_element_by_partial_link_text(u"zoom").click()
    except:
        try:
            driver.find_element_by_partial_link_text(u"Zoom").click()
        except:
            try:
                driver.find_element_by_partial_link_text(u"URL").click()
            except:
                driver.find_element_by_partial_link_text(u"url").click()

                
time.sleep(3)   

links = driver.find_elements_by_partial_link_text('zoom')
for elem in links:
    elem.click()
    
time.sleep(3)   
    
cur_url = driver.current_url
print(cur_url)


#Unten wird schöne Suppe verwendet

import requests
from bs4 import BeautifulSoup

#Senden Sie eine Anfrage an die URL, die gelöscht werden soll, und rufen Sie den HTML-Code ab
res = requests.get(cur_url)

#Erstellen Sie ein BeautifulSoup-Objekt aus dem Antwort-HTML
soup = BeautifulSoup(res.text, 'html.parser')

#Gehen Sie zur Zoomseite
s = soup.find('input')
s=str(s)
#Es ist zu mächtig, also später stilvoll.
s=s[39:-3]
driver.get(s)

Rauer Fluss

Greifen Sie auf 1, Manaba-URL mit Selen zu und melden Sie sich an 2, erhalten Sie die aktuelle Uhrzeit und den aktuellen Tag 3, springen Sie zu dem Klassenrahmen, der der Zeit entspricht 4, Holen Sie sich die Zoom-URL 5, springen Sie zur Zoomseite Ich konnte die URL des 6-Zoom-Meetings nicht abrufen, also bekam ich HTML und analysierte es einmal mit Beautiful Soup. Holen Sie sich die Meeting-URL von 7, HTML 8, springen Sie zur Besprechungsseite

Bibliotheksinstallation

from selenium import webdriver from selenium.webdriver.common.keys import Keys import time from datetime import datetime

four_time=str(datetime.now().strftime("%H%M")) four_time=int(four_time)

Datenaufbereitung (einschließlich Tages- und Klassenrahmen)

data = {"Monday": {1: "Family Welfare Theory", 3: "Welfare and Living Environment Theory"}, "Tuesday": {2: "Advocacy and Adult Guardianship System"}, "Wednesday": {2: "Social Welfare Specialized Exercise I"}, "Donnerstag": {1: "Systeme und Dienstleistungen im Zusammenhang mit psychischer Gesundheit und Wohlfahrt", 3: "Ausbildung in Sozialforschung", 5: "Übung zur Sozialarbeit II"}, "Freitag": {1: "Theorie des Gemeinwohls", 2 : "Unterricht in Sozialarbeit"}}

youbi=datetime.now().strftime('%A')

Öffnen Sie den Browser.

driver_path = './chromedriver' driver = webdriver.Chrome(driver_path)

driver.get ("Geben Sie die URL der Manaba jeder Universität ein")

Warten Sie 1 Sekunde

time.sleep(1)

Geben Sie Ihre Login-ID ein

login_id = driver.find_element_by_id("mainuserid") login_id.send_keys ("Geben Sie Ihre Schulregistrierungsnummer ein")

login_id = driver.find_element_by_name("password") login_id.send_keys ("Passwort eingeben")

Klicken Sie auf die Schaltfläche Anmelden

next_btn = driver.find_element_by_name("login") next_btn.click()

Warten Sie 1 Sekunde

time.sleep(1)

youbi_list = data[youbi] four_time=1320

if four_time <= 950: class_name = youbi_list[1] elif 1025<= four_time<=1050: class_name = youbi_list[2] elif 1245<= four_time<=1330:
class_name = youbi_list[3] elif 1610<= four_time<=1659:
class_name = youbi_list[4] elif 1600<= four_time<=1659:
class_name = youbi_list[5]

print(four_time)

print(class_name)

continue_link = driver.find_element_by_link_text(class_name) continue_link.click()

Suchen Sie nach dem ZOOM-Link.

Refactor ist hier erforderlich, da es mit Brute Force nicht gut ist try: driver.find_element_by_partial_link_text(u"ZOOM").click() except: try: driver.find_element_by_partial_link_text(u"zoom").click() except: try: driver.find_element_by_partial_link_text(u"Zoom").click() except: try: driver.find_element_by_partial_link_text(u"URL").click() except: driver.find_element_by_partial_link_text(u"url").click()

time.sleep(3)

links = driver.find_elements_by_partial_link_text('zoom') for elem in links: elem.click()

time.sleep(3)

Rufen Sie die URL der aktuellen Seite ab

cur_url = driver.current_url print(cur_url)

Unten wird schöne Suppe verwendet

import requests from bs4 import BeautifulSoup

Senden Sie eine Anfrage an die URL, die gelöscht werden soll, und rufen Sie den HTML-Code ab

res = requests.get(cur_url)

Erstellen Sie ein BeautifulSoup-Objekt aus dem Antwort-HTML

soup = BeautifulSoup(res.text, 'html.parser')

zoom Öffnen Sie die Besprechungs-URL

s = soup.find('input') s=str(s) Die folgenden Refaktoren, die zu viel Geschick erfordern s=s[39:-3]

driver.get(s)

Recommended Posts

Ein System, das automatisch an Zoomklassen der Universität teilnimmt
PGM, das automatisch eine Wanderroute erstellt
Nogizaka46 Ein Programm, das Blog-Bilder automatisch speichert
Vim-Plug-In, das automatisch Python-Stile formatiert
Ein einfaches System, das automatisch mit Objekterkennung aufnimmt und an LINE sendet