Giter VIP home page Giter VIP logo

iserv-scraper's Introduction

Wird nicht mehr weiterentwickelt und ist auf neuen IServversionen nicht funktionsfähig!

IServ Scraper

Dieses Script lädt alle ihre Aufgaben von IServ, inklusive zugehörige Dateien, herunter und stellt sie in einer Zip-Datei zusammen.

Inhaltsübersicht

Voraussetzungen

  • Python 3.6+
  • Alle Pakete die in der requirements.txt Datei aufgeführt sind:
    • httpx
    • beautifulsoup4
    • sanitize-filename

Script ausführen

Zugangsdaten (Passwörter und Benutzernamen) ausschließlich an vertraute Personen weitergeben!


Ohne Python Kenntnisse und generelle Anleitung

Python von python.org herunterladen und installieren, bei der Installation darauf achten den Haken bei ADD Python to PATH zu setzen!

Einfach die run.bat Datei ausführen.

Es öffnet sich ein Konsolen Fenster in welchem nach Benutzername (Username) und Passwort (Password) gefragt wird. Hier bitte ihren IServ Benutzernamen und Passwort eingeben.

Nun läuft das Script und sammelt ihre Daten. Nicht wundern es hat einen .venv Ordner erstellt, dieser beinhaltet alle für das Script benötigten Pakete.


Mit Python Kenntnissen (Mehr als Informatikunterricht)

Ich setzte voraus das Python installiert ist.

Optimalerweise ein Virtualenviroment anlegen. (python -m venv .venv), das dann auch aktivieren.

Dependencies installieren pip install -r requirements.txt

Script ausführen python src/scraper.py

Hinweise

Zip-Datei

Die Zip-Datei wird nachdem Schema: JahrMonatTag_StundeMinute_Aufgaben_Benutzername.zip benannt. In ihr ist ein Ordner Aufgaben dieser enthält für jede Aufgabe, bei der Dateien gefunden wurden, einen Ordner mit dem Namen der Aufgabe.

Des Weiteren enthält die Zip-Datei die daten.csv Datei, welche alle weiteren Daten zu den Aufgaben enthält.

daten.csv

Sämtliche Texte werden mit HTML Tags heruntergeladen und so in der CSV-Datei gespeichert, da vor allem die Beschreibungen teilweise sehr lang sind kann dies recht unübersichtlich sein. Um diese annähernd wie auf IServ darzustellen müssen diese in eine separate HTML Datei kopiert werden.

Die Darstellung wird nicht dieselbe wie auf IServ sein!

Eventuell werden diese zukünftig als HTML-Datei in der Zip-Datei zur Verfügung gestellt.


In Excel kann man CSV-Dateien unter dem Reiter Daten importieren, hierbei muss darauf geachtet werden die Formatierung (bzw. den Dateiursprung) auf UTF-8 umzustellen! Excel (zumindest neure Versionen) erkennt automatisch die Datentypen der einzelnen Spalten und kann diese daher korrekt sortieren.

Konfiguration

Filter einstellen

Beim ersten ausführen des Scripts wird eine filters.cfg Datei erstellt. Hier kann man Filter für den Namen einer Aufgabe einfügen, pro Zeile ein Filter.

Alle Aufgaben, deren Name eine oder mehrere dieser Filter enthält, werden nicht heruntergeladen.

Achtung Groß-/Kleinschreibung wird beachtet!

Beispiel:

filters.cfg:

WHG-Online Team
Sozialkunde
Mathe

In diesem Fall würden alle Aufgaben, deren Name WHG-Online Team, Sozialkunde oder Mathe enthält, ignoriert und dem entsprechend nicht verarbeitet.

  • WHG-Online Team: Treffen würde ignoriert
  • Sozialkunde Hausaufgaben würde ignoriert
  • whg-online team: treffen würde nicht ignoriert, da Groß-/Kleinschreibung beachtet wird
  • Deutsch Hausaufgaben würde nicht ignoriert, da der Name keinen der Filter enthält

Fortgeschritten

Achtung bitte mit den einzelnen Paketen vertraut machen und den Code anschauen!

scraper.py enthält eine Klasse Scraper diese hat folgende Parameter:

  • client Typ: httpx.AsyncClient
    • hier kann ein eigener Client bereitgestellt werden, falls man zum Beispiel einen anderen User-Agent verwenden möchte
  • url Typ: str
    • eine URL zu einer IServ Instanz, standard mäßig die des Werner-Heisenberg-Gymnasiums Bad Dürkheim
  • username Typ: str Auf keinen Fall auf GitHub pushen
    • ein Benutzername, hilfreich wenn das Script automatisch laufen soll
  • password Typ: str Auf keinen Fall auf GitHub pushen
    • ein Passwort, hilfreich wenn das Script automatisch laufen soll
  • filters Typ: list
    • Liste an Filtern, die Klasse liest nicht selbst di filters.cfg Datei

Fehler melden

Fehler bitte möglichst als GitHub Issue melden. Möglichst die Fehlermeldung kopieren und anfügen. Alternativ einen Screenshot mit der vollständigen Fehlermeldung bereitstellen.

Dabei darauf achten keine Zugangsdaten oder andere sensible Daten mit zu senden.

iserv-scraper's People

Contributors

atlasfreak avatar cxmu03 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

iserv-scraper's Issues

Neues Design

Das neue Design des Aufgabenmoduls hat vermutlich den Scraper zerlegt.

Grammatik

Unter dem Kapitel Filter einstellen hast du ein paar mal würde verwendet und nicht wurde oder so

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.