diff options
author | Marvin Borner | 2019-09-18 22:24:13 +0200 |
---|---|---|
committer | Marvin Borner | 2019-09-18 22:24:13 +0200 |
commit | 26e0a26011af580ec24eb158d450a8ffd4afad52 (patch) | |
tree | 4582996ba3d30ead9c3c114ff3b77a861448b835 /parser.py |
Added basic functionality
Diffstat (limited to 'parser.py')
-rw-r--r-- | parser.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/parser.py b/parser.py new file mode 100644 index 0000000..784d637 --- /dev/null +++ b/parser.py @@ -0,0 +1,39 @@ +import urllib.request +import pydsb +from flask import Flask, jsonify, render_template, send_from_directory +from bs4 import BeautifulSoup + +app = Flask(__name__) + + +@app.route("/api") +def get(): + dsb = pydsb.PyDSB("~", "~") + dsb.login() + + data = { + "Montag": [], + "Dienstag": [], + "Mittwoch": [], + "Donnerstag": [], + "Freitag": [] + } + + url = dsb.get_plans()[0]["url"] + contents = urllib.request.urlopen(url).read() + parsed = BeautifulSoup(contents, "lxml") + tables = parsed.find_all("table", {"class": "mon_list"}) + for table in tables: + rows = table.find_all("tr") + for row in rows: + table_data = row.find_all("td") + if len(table_data) > 0: + if "TGM12/1" in table_data[0].b.text: + data[rows[1].b.text].append({ + "Woche": table.parent.find("div", {"class": "mon_title"}).text[-1:], + "Stunde": table_data[1].b.text, + "Fach": table_data[2].text, + "Raum": table_data[3].text, + "Typ": table_data[4].text, + }) + return jsonify(data) |