[PYTHON] Un système qui assiste automatiquement aux cours de zoom universitaires

Préface

Évitons les abus tels que ne pas accéder à ce Essayez de ne pas attaquer le système de classe universitaire tel que manaba, et suivez les méthodes d'accès.

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)

#Préparation des données(Changer en fonction de votre sujet)
data={"Monday":{1:"Théorie du bien-être familial",3:"Théorie du bien-être et du milieu de vie"},"Tuesday":{2:"Plaidoyer et tutelle des adultes"},"Wednesday":{2:"Exercice spécialisé en protection sociale I"},
      "Thursday":{1:"Systèmes et services de santé mentale et de bien-être",3:"Formation aux enquêtes sur la protection sociale",5:"Exercice de travail social II"},"Friday":{1:"Théorie du bien-être communautaire",2:"Conseils de formation en travail social"}}

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


#Ouvrez le navigateur.
driver_path = './chromedriver'
driver = webdriver.Chrome(driver_path)
#Ouvrez l'écran TOP de recherche Google.
driver.get("Entrez l'URL manaba de votre université")
#Attendez 1 seconde
time.sleep(1)
#Entrez votre identifiant de connexion

login_id = driver.find_element_by_id("mainuserid")
login_id.send_keys("Entrez le numéro d'inscription de l'école")

login_id = driver.find_element_by_name("password")
login_id.send_keys("Entrer le mot de passe")


#Cliquez sur le bouton de connexion
next_btn = driver.find_element_by_name("login")
next_btn.click()

#Attendez 1 seconde
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)


#Ci-dessous la soupe est utilisée

import requests
from bs4 import BeautifulSoup

#Envoyez une demande à l'URL à récupérer et obtenez le HTML
res = requests.get(cur_url)

#Créer un objet BeautifulSoup à partir du code HTML de la réponse
soup = BeautifulSoup(res.text, 'html.parser')

#Aller à la page de zoom
s = soup.find('input')
s=str(s)
#Il est trop puissant, donc élégant plus tard.
s=s[39:-3]
driver.get(s)

Écoulement brutal

Accédez à 1, URL manaba avec sélénium et connectez-vous 2, obtenez l'heure et le jour actuels 3, passez au cadre de classe qui convient à l'heure 4, obtenez l'URL de zoom 5, passez à la page de zoom Je n'ai pas pu obtenir l'URL de la réunion 6, zoom telle qu'elle était, alors j'ai obtenu du code HTML et l'ai analysé une fois avec Beautiful Soup. Obtenez l'URL de la réunion à partir de 7, html 8, passez à la page de la réunion

Installation de la bibliothèque

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)

Préparation des données (y compris le cadre de jour et de classe)

data = {"Monday": {1: "Family Welfare Theory", 3: "Welfare and Living Environment Theory"}, "Tuesday": {2: "Advocacy and Adult Guardianship System"}, "Wednesday": {2: "Exercice spécialisé I de la protection sociale"}, "Jeudi": {1: "Systèmes et services liés à la santé mentale et au bien-être", 3: "Formation à la recherche sur le bien-être social", 5: "Exercice de travail social II"}, "Vendredi": {1: "Théorie du bien-être communautaire", 2 : "Instruction de formation en travail social"}}

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

Ouvrez le navigateur.

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

driver.get ("Entrez l'URL du manaba de chaque université")

Attendez 1 seconde

time.sleep(1)

Entrez votre identifiant de connexion

login_id = driver.find_element_by_id("mainuserid") login_id.send_keys ("Entrez le numéro d'inscription de votre école")

login_id = driver.find_element_by_name("password") login_id.send_keys ("Saisir le mot de passe")

Cliquez sur le bouton de connexion

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

Attendez 1 seconde

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()

Recherchez le lien ZOOM.

Refactor est requis ici car il n'est pas bon avec la force brute 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)

Obtenir l'URL de la page actuelle

cur_url = driver.current_url print(cur_url)

Ci-dessous la soupe est utilisée

import requests from bs4 import BeautifulSoup

Envoyez une demande à l'URL à récupérer et obtenez le HTML

res = requests.get(cur_url)

Créer un objet BeautifulSoup à partir du code HTML de la réponse

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

zoom Ouvrir l'URL de la réunion

s = soup.find('input') s=str(s) Les refactors suivants qui nécessitent trop de compétences s=s[39:-3]

driver.get(s)

Recommended Posts

Un système qui assiste automatiquement aux cours de zoom universitaires
PGM qui crée automatiquement un itinéraire à pied
Nogizaka46 Un programme qui enregistre automatiquement les images de blog
Plug-in Vim qui formate automatiquement les styles Python
Un système simple qui prend automatiquement des photos avec détection d'objet et l'envoie à LINE