Code: Alles auswählen
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup
Lehrer = {
.... # geloescht aus Datenschutzgruenden
}
def extrahieren_lehrer_spalte():
# Konfigurieren von Selenium
options = Options()
options.add_argument("--headless") # Ausführen im Headless-Modus, um den Browser nicht anzuzeigen
service = Service('path/to/chromedriver') # Pfad zum ChromeDriver anpassen
driver = webdriver.Chrome(service=service, options=options)
url = 'https://www.jkg-wds.de/Schulintern/Vertretungsplan/EXPORT%20Stundenplan%20SuS%20heute/subst_001.htm'
driver.get(url)
time.sleep(2) # Warten, bis die Seite vollständig geladen ist
soup = BeautifulSoup(driver.page_source, 'html.parser')
rows = soup.find('table', {'class': 'mon_list'}).find_all('tr')
Vertretungsplan_list = []
thomas = []
# Extrahiere die Spaltenüberschriften
for headline in rows[0].find_all('th'):
thomas.append(headline.text)
# Durchlaufe alle Zeilen außer der ersten (Überschriftenzeile)
for row in rows[1:]:
dic = {}
for i, cell in enumerate(row.find_all('td')):
dic[thomas[i]] = cell.text.strip()
if cell.find('s'): # Überprüfung auf durchgestrichenes Format
dic[thomas[i]] = dic[thomas[i]].replace("<s>", "").replace("</s>", "") # Entfernen der Markierung
# Entfernen des Texts hinter den Pfeilen
arrow_index = dic[thomas[i]].find('→')
if arrow_index != -1:
dic[thomas[i]] = dic[thomas[i]][:arrow_index]
else:
dic[thomas[i]] = "" # Nicht durchgestrichene Lehrernamen entfernen
if dic["(Lehrer)"] != "":
Vertretungsplan_list.append(dic)
lehrer_spalte = []
# Extrahiere die Lehrernamen
for eintrag in Vertretungsplan_list:
lehrer = eintrag["(Lehrer)"]
lehrer_spalte.append(lehrer)
# Browser und Treiber schließen
driver.quit()
return lehrer_spalte
# Funktion aufrufen und das Ergebnis speichern
result = extrahieren_lehrer_spalte()
# Das Ergebnis ausgeben
print(result)
def update_fehlstunden(lehrer_list):
global Lehrer
for lehrer in lehrer_list:
if lehrer in Lehrer:
Lehrer[lehrer]["Fehlstunden"] += 1
update_fehlstunden(result)
print(Lehrer)
Mein Problem ist, dass das dictionary im Code nicht Aktualisiert wird, wenn ich den code ausführe es wird zwar richtig ausgegeben aber das dictionary wird nicht aktualisiert.
Es würde mich sehr freuen, wenn ihr mir helfen könntet und hoffe, dass das nicht unter "Schulaufgaben machen" fällt.