Přeskočit obsah

ŠOL známky

Známky získávám ze školního informačního systému Škola Online [ŠOL]. Jelikož webová aplikace nemá žádná přístupné API, musel jsem navrhnout wrapper, který pomocí web scapingu stáhne HTML data a pomocí knihovny LXML je rozparsuje do pomocných tříd. Za tříd se na závěr generuje výstup ve formátu JSON.

Vstupní HTML data

...
<table class="smallTable hodnoceniTable" border="0">
    <tr>
        <td>St 20.4.</td><td title="Český jazyk a literatura">Český jazyk a literatura</td><td><a title="2"><strong>2</strong></a></td>
    </tr><tr>
        <td>Út 12.4.</td><td title="Český jazyk a literatura">Český jazyk a literatura</td><td><a title="1"><span class=' znamka_dobra'><strong>1</strong></span></a></td>
    </tr><tr>
        <td>St 6.4.</td><td title="Chemie">Chemie</td><td><a title="2"><strong>2</strong></a></td>
    </tr>
</table>
...

Výstupní JSON

{
    "data": [
        {
            "date": "St 20.4.",
            "subject": "Český jazyk a literatura",
            "mark": "2"
        },
        {
            "date": "Út 12.4.",
            "subject": "Český jazyk a literatura",
            "mark": "1"
        },
        {
            "date": "St 6.4.",
            "subject": "Chemie",
            "mark": "2"
        }
    ],
    "status": "ok",
    "time": "2022-05-15 13:48:38.867022"
}