Skip to content

Commit 8a2faf9

Browse files
authored
Update README.md
Aufgehübscht
1 parent 328b3c6 commit 8a2faf9

1 file changed

Lines changed: 56 additions & 3 deletions

File tree

README.md

Lines changed: 56 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,58 @@
11
# WestermannWebcodeHelper
2-
Alpha-Version eines 🛠 Tools, dass über Webcodes bei Westermann die zugehörigen Materialien 🔽 herunterlädt.
2+
Alpha-Version eines (privaten) 🛠 Tools, dass über Webcodes bei Westermann die zugehörigen Materialien 🔽 herunterlädt.
3+
4+
## Das Tool für den Download der Webressourcen über einen Webcode
5+
6+
Das Tool benötigt die Module [requests](https://pypi.org/project/requests/) und [beautifulsoup4](https://pypi.org/project/beautifulsoup4/).
7+
8+
```python
9+
from bs4 import BeautifulSoup
10+
import requests
11+
12+
13+
def download(webcode):
14+
url = "https://www.westermann.de/webcode"
15+
payload = {'webcode': webcode}
16+
# Die Seite mit dem Webcode aufrufen und die Zielseite erfragen
17+
web = requests.post(url, data=payload, allow_redirects=False)
18+
location = web.headers['Location']
19+
zieladresse = "https://www.westermann.de" + location
20+
# Die Zielseite aufrufen und den Link auf die Webressource erfragen
21+
web = requests.get(zieladresse)
22+
soup = BeautifulSoup(web.text, "html5lib")
23+
links = soup.find_all("a")
24+
ressource = ""
25+
for link in links:
26+
if "backend" in link["href"]:
27+
ressource = "https://www.westermann.de" + link["href"]
28+
# Die Seite mit der Ressource aufrufen, die Ressource herunterladen
29+
web = requests.get(ressource, allow_redirects=True)
30+
with open(f"{webcode}.doc", "wb") as f:
31+
f.write(web.content)
32+
33+
def main():
34+
# Sprache und Kommunikation im öffentlichen Raum (2022)
35+
webcodes = ['SNG-22788-999', 'SNG-22788-990', 'SNG-22788-909', 'SNG-22788-100', 'SNG-22788-111', 'SNG-22788-110',
36+
'SNG-22788-101', 'SNG-22788-001', 'SNG-22788-011', 'SNG-22788-008', 'SNG-22788-800', 'SNG-22788-088',
37+
'SNG-22788-888', 'SNG-22788-808', 'SNG-22788-880', 'SNG-22788-222', 'SNG-22788-900', 'SNG-22788-202',
38+
'SNG-22788-022', 'SNG-22788-220', 'SNG-22788-444', 'SNG-22788-400', 'SNG-22788-404', 'SNG-22788-044',
39+
'SNG-22788-440', 'SNG-22788-333', 'SNG-22788-300', 'SNG-22788-303', 'SNG-22788-330', 'SNG-22788-033',
40+
'SNG-22788-030', 'SNG-22788-555', 'SNG-22788-666', 'SNG-22788-600', 'SNG-22788-606', 'SNG-22788-660',
41+
'SNG-22788-066', 'SNG-22788-060', 'SNG-22788-777', 'SNG-22788-700', 'SNG-22788-750', 'SNG-22788-850',
42+
'SNG-22788-150', 'SNG-22788-002', 'SNG-22788-500', 'SNG-22788-000', 'SNG-22788-090', 'SNG-22788-009',
43+
'SNG-22788-099']
44+
for webcode in webcodes:
45+
download(webcode)
46+
47+
if __name__ == "__main__":
48+
main()
49+
```
350

451
## Webcode-Liste aufbauen
552

653
Westermann verwendet eine Kennung für ein Medium bestehend aus der Buchstabenfolge SNG, einem Bindestrich, einer Kennung für das jeweilige Medium ohne führende 0, einem Bindestrich und dann eine dreistellige Nummer für die eigentliche Webressource. Nachfolgendes kleines Tool kann helfen, eine Webcodeliste aufzubauen, wenn man nur die dreistelligen Nummern erfasst:
754

8-
```
55+
```python
956
webcodes = "999 990".split(" ")
1057
webcode = "SNG-22788-"
1158

@@ -19,7 +66,7 @@ print(result)
1966

2067
### EinFach Deutsch, Unterrichtsmodell, Sprache und Kommunikation im öffentlichen Raum … ohne Rassismus und Diskriminierung (2022)
2168

22-
```
69+
```python
2370
webcodes = ['SNG-22788-999', 'SNG-22788-990', 'SNG-22788-909', 'SNG-22788-100', 'SNG-22788-111', 'SNG-22788-110',
2471
'SNG-22788-101', 'SNG-22788-001', 'SNG-22788-011', 'SNG-22788-008', 'SNG-22788-800', 'SNG-22788-088',
2572
'SNG-22788-888', 'SNG-22788-808', 'SNG-22788-880', 'SNG-22788-222', 'SNG-22788-900', 'SNG-22788-202',
@@ -30,3 +77,9 @@ webcodes = ['SNG-22788-999', 'SNG-22788-990', 'SNG-22788-909', 'SNG-22788-100',
3077
'SNG-22788-150', 'SNG-22788-002', 'SNG-22788-500', 'SNG-22788-000', 'SNG-22788-090', 'SNG-22788-009',
3178
'SNG-22788-099']
3279
```
80+
81+
## Möglichkeiten zur Mitarbeit
82+
83+
Ein GUI für das Tool könnte technisch weniger versierten Nutzerinnen und Nutzern helfen.
84+
85+
Weitere Webcode-Listen könnten zunächst direkt via Pull Requests der Readme.md-Datei hinzugefügt werden.

0 commit comments

Comments
 (0)