details start und no code überarbeitet, repo actions hinzugefügt
Browse files- src/01_setup/agenda.qmd +6 -0
- src/01_setup/aufbereitung.qmd +5 -58
- src/01_setup/optional/colab-github.qmd +0 -2
- src/01_setup/optional/quarto-lokal.qmd +2 -2
- src/02_basics/app_market/google-play-search.qmd +3 -0
- src/02_basics/webspider.qmd +21 -1
- src/02_basics/webspider/CDL Espresso Talk 27. November 2024 (1).png +0 -0
- src/02_basics/webspider/CDL Espresso Talk 27. November 2024.png +0 -0
- src/02_basics/webspider/website-url-extractor.qmd +20 -0
- src/_quarto.yml +5 -5
src/01_setup/agenda.qmd
CHANGED
@@ -2,6 +2,12 @@
|
|
2 |
title: "Agenda"
|
3 |
---
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
### Zeitplan
|
6 |
|
7 |
- **16:00 Uhr**
|
|
|
2 |
title: "Agenda"
|
3 |
---
|
4 |
|
5 |
+
Im Workshop werden wir in einem dreistufigen Prozess vorgehen. Im ersten Schritt nutzen wir einfache Anwendungen, um Daten zu sammeln. Dies wird hier unter dem Begriff "No Code" zusammengefasst. Ursprünglich bedeutet No Code, das Programmieren zu umgehen, indem man eine interaktive Benutzeroberfläche verwendet.
|
6 |
+
|
7 |
+
Im zweiten Schritt werden wir in einem Notebook mit Hilfe großer Sprachmodelle Computeranweisungen erstellen. Durch die Unterstützung dieser Sprachmodelle ist keine Programmierkenntnis vorausgesetzt, was den Einstieg erheblich erleichtert.
|
8 |
+
|
9 |
+
Schließlich, im letzten Schritt, sollen die erlernten Kenntnisse auf konkrete Anwendungsfälle angewandt werden, um die praktische Nutzung und den Mehrwert dieser Techniken zu demonstrieren.
|
10 |
+
|
11 |
### Zeitplan
|
12 |
|
13 |
- **16:00 Uhr**
|
src/01_setup/aufbereitung.qmd
CHANGED
@@ -4,10 +4,10 @@ title: "Werkzeuge zur Datenaufbereitung"
|
|
4 |
|
5 |
Die Analyse gesammelter Daten ist ein wichtiger Schritt, um Erkenntnisse zu gewinnen und Entscheidungen zu unterstützen. Dieser Artikel stellt kostenlose Werkzeuge vor, die sich zur Analyse verschiedener Datentypen und -formate eignen. Dabei werden sowohl Textdateien, PDFs, Tabellen als auch andere Datenquellen berücksichtigt. Zudem beleuchten wir mögliche Ausgabeformate wie Texte, Visualisierungen, Mindmaps und Diagramme.
|
6 |
|
7 |
-
##
|
8 |
|
9 |
### NotebookLM
|
10 |
-
**Beschreibung**: NotebookLM ist ein KI-gestütztes Tool, das dabei hilft, Textdokumente zu analysieren, Schlüsselbegriffe zu extrahieren und Zusammenfassungen zu erstellen.
|
11 |
|
12 |
**Datentypen**:
|
13 |
|
@@ -26,7 +26,7 @@ Die Analyse gesammelter Daten ist ein wichtiger Schritt, um Erkenntnisse zu gewi
|
|
26 |
- Geordnete Listen von Schlüsselbegriffen
|
27 |
|
28 |
### ChatGPT / Bing Chat
|
29 |
-
**Beschreibung**: KI-gestützte Chats wie ChatGPT und Bing Chat können genutzt werden, um Daten aus Texten oder strukturierten Formaten wie CSVs zu extrahieren, analysieren und interpretieren.
|
30 |
|
31 |
**Datentypen**:
|
32 |
|
@@ -46,7 +46,7 @@ Die Analyse gesammelter Daten ist ein wichtiger Schritt, um Erkenntnisse zu gewi
|
|
46 |
- Tabellen
|
47 |
- Bullet Points
|
48 |
|
49 |
-
## Tabellen
|
50 |
|
51 |
### Microsoft Excel
|
52 |
**Beschreibung**: Excel bietet einfache Werkzeuge zur Bearbeitung und Analyse von Tabellen.
|
@@ -68,7 +68,7 @@ Die Analyse gesammelter Daten ist ein wichtiger Schritt, um Erkenntnisse zu gewi
|
|
68 |
- Tabellen
|
69 |
|
70 |
### Google Colab
|
71 |
-
**Beschreibung**:
|
72 |
|
73 |
**Datentypen**:
|
74 |
|
@@ -85,56 +85,3 @@ Die Analyse gesammelter Daten ist ein wichtiger Schritt, um Erkenntnisse zu gewi
|
|
85 |
|
86 |
- Visualisierungen (z. B. Balken-, Linien-, Streudiagramme)
|
87 |
- Tabellen
|
88 |
-
|
89 |
-
## Visuelle Ausgabemöglichkeiten
|
90 |
-
|
91 |
-
```{dot}
|
92 |
-
graph G {
|
93 |
-
community_meeting -- awareness_campaign;
|
94 |
-
awareness_campaign -- petition;
|
95 |
-
petition -- community_meeting;
|
96 |
-
community_meeting -- local_government;
|
97 |
-
local_government -- policy_draft;
|
98 |
-
local_government -- resource_allocation;
|
99 |
-
policy_draft -- review;
|
100 |
-
review -- revision;
|
101 |
-
revision -- final_policy;
|
102 |
-
revision -- policy_draft;
|
103 |
-
final_policy -- resource_allocation;
|
104 |
-
review -- resource_allocation;
|
105 |
-
}
|
106 |
-
```
|
107 |
-
|
108 |
-
### Mermaid.js
|
109 |
-
**Beschreibung**: Ein Tool zur Erstellung von Diagrammen und Flussdiagrammen aus Textdefinitionen.
|
110 |
-
|
111 |
-
**Datentypen**:
|
112 |
-
|
113 |
-
- Textdateien mit Mermaid-Syntax
|
114 |
-
|
115 |
-
**Funktionen**:
|
116 |
-
|
117 |
-
- Erstellung von Diagrammen wie Flussdiagrammen, Gantt-Diagrammen, und mehr
|
118 |
-
|
119 |
-
**Ausgabeformate**:
|
120 |
-
|
121 |
-
- Diagramme in HTML oder SVG
|
122 |
-
|
123 |
-
**Beispiel**:
|
124 |
-
```mermaid
|
125 |
-
graph TD
|
126 |
-
A[Start] --> B[Entscheidung]
|
127 |
-
B -->|Ja| C[Weiter]
|
128 |
-
B -->|Nein| D[Ende]
|
129 |
-
```
|
130 |
-
|
131 |
-
```{mermaid}
|
132 |
-
graph TD
|
133 |
-
A[Start] --> B[Entscheidung]
|
134 |
-
B -->|Ja| C[Weiter]
|
135 |
-
B -->|Nein| D[Ende]
|
136 |
-
```
|
137 |
-
|
138 |
-
# Fazit
|
139 |
-
|
140 |
-
Die Wahl des richtigen Werkzeugs hängt vom Datentyp und den gewünschten Ausgabemöglichkeiten ab. Textbasierte Daten können hervorragend mit NotebookLM oder ChatGPT analysiert werden, während Tabellenformate in Excel oder Google Colab aufbereitet werden können. Für Visualisierungen und Mindmaps bieten Markmap.js und Mermaid.js innovative und einfache Lösungen. Mit diesen Tools lassen sich Daten effizient und professionell auswerten.
|
|
|
4 |
|
5 |
Die Analyse gesammelter Daten ist ein wichtiger Schritt, um Erkenntnisse zu gewinnen und Entscheidungen zu unterstützen. Dieser Artikel stellt kostenlose Werkzeuge vor, die sich zur Analyse verschiedener Datentypen und -formate eignen. Dabei werden sowohl Textdateien, PDFs, Tabellen als auch andere Datenquellen berücksichtigt. Zudem beleuchten wir mögliche Ausgabeformate wie Texte, Visualisierungen, Mindmaps und Diagramme.
|
6 |
|
7 |
+
## Texte
|
8 |
|
9 |
### NotebookLM
|
10 |
+
**Beschreibung**: [NotebookLM](https://notebooklm.google.com/) ist ein KI-gestütztes Tool, das dabei hilft, Textdokumente zu analysieren, Schlüsselbegriffe zu extrahieren und Zusammenfassungen zu erstellen.
|
11 |
|
12 |
**Datentypen**:
|
13 |
|
|
|
26 |
- Geordnete Listen von Schlüsselbegriffen
|
27 |
|
28 |
### ChatGPT / Bing Chat
|
29 |
+
**Beschreibung**: KI-gestützte Chats wie [ChatGPT](https://chatgpt.com/) und [Bing Chat](https://copilot.microsoft.com/) können genutzt werden, um Daten aus Texten oder strukturierten Formaten wie CSVs zu extrahieren, analysieren und interpretieren.
|
30 |
|
31 |
**Datentypen**:
|
32 |
|
|
|
46 |
- Tabellen
|
47 |
- Bullet Points
|
48 |
|
49 |
+
## Tabellen
|
50 |
|
51 |
### Microsoft Excel
|
52 |
**Beschreibung**: Excel bietet einfache Werkzeuge zur Bearbeitung und Analyse von Tabellen.
|
|
|
68 |
- Tabellen
|
69 |
|
70 |
### Google Colab
|
71 |
+
**Beschreibung**: [Colab](erforderlich/colab.qmd) ist eine Plattform zur Nutzung von Python-Notebooks, die umfangreiche Bibliotheken wie Matplotlib oder Seaborn zur Visualisierung bietet.
|
72 |
|
73 |
**Datentypen**:
|
74 |
|
|
|
85 |
|
86 |
- Visualisierungen (z. B. Balken-, Linien-, Streudiagramme)
|
87 |
- Tabellen
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/01_setup/optional/colab-github.qmd
CHANGED
@@ -18,8 +18,6 @@ image: _bebbf63f-874e-4d27-b6a5-f0e0116fd587.jpeg
|
|
18 |
- Klicke auf dein Profilbild in der oberen rechten Ecke und wähle "Settings".
|
19 |
- Hier kannst du dein Profilbild, deinen Namen und eine kurze Beschreibung hinzufügen.
|
20 |
|
21 |
-
---
|
22 |
-
|
23 |
## Verbinden eines Colab-Notebooks mit GitHub 💻
|
24 |
|
25 |
### 1: Ein neues Notebook erstellen oder öffnen
|
|
|
18 |
- Klicke auf dein Profilbild in der oberen rechten Ecke und wähle "Settings".
|
19 |
- Hier kannst du dein Profilbild, deinen Namen und eine kurze Beschreibung hinzufügen.
|
20 |
|
|
|
|
|
21 |
## Verbinden eines Colab-Notebooks mit GitHub 💻
|
22 |
|
23 |
### 1: Ein neues Notebook erstellen oder öffnen
|
src/01_setup/optional/quarto-lokal.qmd
CHANGED
@@ -38,11 +38,11 @@ Hier sind die Schritte, um das Repository `https://huggingface.co/spaces/datenwe
|
|
38 |
|
39 |
1. **Lade das Quarto-Tarball herunter**:
|
40 |
```bash
|
41 |
-
wget https://github.com/quarto-dev/quarto-cli/releases/download/v1.6.39/quarto-1.6.39-linux-
|
42 |
```
|
43 |
2. **Installiere das Tarball-Paket**:
|
44 |
```bash
|
45 |
-
sudo dpkg -i quarto-1.6.39-linux-
|
46 |
```
|
47 |
3. **Löse eventuelle Abhängigkeiten**:
|
48 |
```bash
|
|
|
38 |
|
39 |
1. **Lade das Quarto-Tarball herunter**:
|
40 |
```bash
|
41 |
+
wget https://github.com/quarto-dev/quarto-cli/releases/download/v1.6.39/quarto-1.6.39-linux-amd64.deb
|
42 |
```
|
43 |
2. **Installiere das Tarball-Paket**:
|
44 |
```bash
|
45 |
+
sudo dpkg -i quarto-1.6.39-linux-amd64.deb
|
46 |
```
|
47 |
3. **Löse eventuelle Abhängigkeiten**:
|
48 |
```bash
|
src/02_basics/app_market/google-play-search.qmd
CHANGED
@@ -4,6 +4,9 @@ description: "Dieses Tool durchsucht den Google Play Store nach Apps durchsuchen
|
|
4 |
image: _9d81d3d2-f372-476b-beb6-fe6a4841739b.jpeg
|
5 |
---
|
6 |
|
|
|
|
|
|
|
7 |
## Lernziel
|
8 |
|
9 |
* Zu mehreren Themengebieten Listen an Links zu Anwendungen im Google Play Marktplatz erstellen und vergleichen.
|
|
|
4 |
image: _9d81d3d2-f372-476b-beb6-fe6a4841739b.jpeg
|
5 |
---
|
6 |
|
7 |
+
Der [google-play-scraper](https://pypi.org/project/google-play-scraper/) ist ein Beispiel für eine einfache und benutzerfreundliche Bibliothek, die speziell für das Scraping von Daten aus dem Google Play Store entwickelt wurde. Es bietet eine direkte Möglichkeit, App-Informationen wie Bewertungen, Beschreibungen und Entwicklerdetails zu extrahieren, ohne dass eine API oder komplexe Webscraping-Techniken erforderlich sind. Die Nutzung ist unkompliziert und erfordert nur wenige Zeilen Code.
|
8 |
+
|
9 |
+
|
10 |
## Lernziel
|
11 |
|
12 |
* Zu mehreren Themengebieten Listen an Links zu Anwendungen im Google Play Marktplatz erstellen und vergleichen.
|
src/02_basics/webspider.qmd
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
---
|
2 |
title: "Die erste Webspider"
|
3 |
-
description: "Den
|
4 |
listing:
|
5 |
- id: webspider
|
6 |
contents: "webspider"
|
@@ -11,5 +11,25 @@ listing:
|
|
11 |
|
12 |
* Einsatz von Tools wie dem Webseiten-URL-Extraktor zur automatischen Extraktion von Links zur Veranschaulichung des Webscraping Prozesses. Verwendung einer einfachen Webspider.
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
::: {#webspider}
|
15 |
:::
|
|
|
1 |
---
|
2 |
title: "Die erste Webspider"
|
3 |
+
description: "Den Webscrapingprozess nachvollziehen durch automatisches URL Extrahieren und durchlaufen von verlinkten Webseiten."
|
4 |
listing:
|
5 |
- id: webspider
|
6 |
contents: "webspider"
|
|
|
11 |
|
12 |
* Einsatz von Tools wie dem Webseiten-URL-Extraktor zur automatischen Extraktion von Links zur Veranschaulichung des Webscraping Prozesses. Verwendung einer einfachen Webspider.
|
13 |
|
14 |
+
## Webscraping & Webspider
|
15 |
+
|
16 |
+
<p align="center">
|
17 |
+
<img src="webspider/CDL%20Espresso%20Talk%2027.%20November%202024.png" alt="CDL Espresso Talk 27. November 2024 - Webscraping" width="50%">
|
18 |
+
</p>
|
19 |
+
|
20 |
+
Das erste Bild illustriert die Funktionsweise eines **Web Spiders** oder Webscrapers mit dem Scrapy Framework. Hierbei wird der Prozess des Webcrawlings und -scrapings in mehreren Schritten dargestellt.
|
21 |
+
|
22 |
+
## Webcrawling
|
23 |
+
|
24 |
+
<p align="center">
|
25 |
+
<img src="webspider/CDL%20Espresso%20Talk%2027.%20November%202024%20(1).png" alt="CDL Espresso Talk 27. November 2024 - Webcrawling" width="50%">
|
26 |
+
</p>
|
27 |
+
|
28 |
+
Das Bild zum **Webcrawling** zeigt einen Baumdiagramm, der die strukturelle Navigation durch eine Website veranschaulicht. Hierbei handelt es sich um einen Startpunkt (Startseite), von dem aus verschiedene Projektseiten (z.B. "Projekt 1", "Projekt 2", "Projekt 3"... "Projekt D") und deren Details (z.B. "Details Projekt 1", "Details Projekt A" usw.) durch einen Webcrawler systematisch durchsucht werden. Der Webcrawler folgt dabei Links von einer Seite zur nächsten und sammelt Informationen. Dies geschieht typischerweise, um Daten für Suchmaschinenindizes zu sammeln oder um Inhalte zu analysieren.
|
29 |
+
|
30 |
+
Insgesamt zeigen die Bilder die Systematik und den Ablauf von Webspider- und Webscraping-Techniken, die sowohl für das Durchsuchen (Crawling) als auch für das gezielte Extrahieren (Scraping) von Daten eingesetzt werden.
|
31 |
+
|
32 |
+
## Tutorials
|
33 |
+
|
34 |
::: {#webspider}
|
35 |
:::
|
src/02_basics/webspider/CDL Espresso Talk 27. November 2024 (1).png
ADDED
![]() |
src/02_basics/webspider/CDL Espresso Talk 27. November 2024.png
ADDED
![]() |
src/02_basics/webspider/website-url-extractor.qmd
CHANGED
@@ -29,6 +29,26 @@ image: _1fca0884-d58a-4271-b90f-90afcb2c4be9.jpeg
|
|
29 |
- Auf die Schaltfläche **"URLs extrahieren"** klicken.
|
30 |
- Die App extrahiert alle Links aus der hochgeladenen HTML-Datei und zeigt sie an. Nur vollständige Links, die mit `http` beginnen, werden angezeigt.
|
31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
### 4. Ergebnisse anzeigen
|
33 |
- Die extrahierten URLs werden in einer übersichtlichen Liste angezeigt. Die Links können direkt angeklickt werden, um sie zu öffnen.
|
34 |
|
|
|
29 |
- Auf die Schaltfläche **"URLs extrahieren"** klicken.
|
30 |
- Die App extrahiert alle Links aus der hochgeladenen HTML-Datei und zeigt sie an. Nur vollständige Links, die mit `http` beginnen, werden angezeigt.
|
31 |
|
32 |
+
**Blick in den Quelltext:**
|
33 |
+
```python
|
34 |
+
links = [a.get('href') for a in soup.find_all('a', href=True)]
|
35 |
+
```
|
36 |
+
|
37 |
+
Der Code extrahiert alle URLs aus den `<a>`-Tags eines HTML-Dokuments und speichert sie in der Liste links.
|
38 |
+
|
39 |
+
1. ```python
|
40 |
+
soup.find_all('a', href=True)
|
41 |
+
```
|
42 |
+
Diese Methode durchsucht das HTML-Dokument nach allen `<a>`-Tags, die ein href-Attribut besitzen. soup ist dabei ein BeautifulSoup-Objekt, das das HTML-Dokument repräsentiert.
|
43 |
+
2. ```python
|
44 |
+
a.get('href')
|
45 |
+
```
|
46 |
+
Für jedes gefundene `<a>`-Tag wird der Wert des href-Attributs extrahiert.
|
47 |
+
3. ```python
|
48 |
+
[a.get('href') for a in soup.find_all('a', href=True)]
|
49 |
+
```
|
50 |
+
Die Auflistungsfunktion wiederholt die Extraktion für jeden Link im Dokument und erstellt eine Liste aller href-Werte (URLs) der gefundenen `<a>`-Tags.
|
51 |
+
|
52 |
### 4. Ergebnisse anzeigen
|
53 |
- Die extrahierten URLs werden in einer übersichtlichen Liste angezeigt. Die Links können direkt angeklickt werden, um sie zu öffnen.
|
54 |
|
src/_quarto.yml
CHANGED
@@ -3,6 +3,11 @@ project:
|
|
3 |
website:
|
4 |
title: "🧭 Collecting Data on the Web - Webscraping Workshop 2025"
|
5 |
page-navigation: true
|
|
|
|
|
|
|
|
|
|
|
6 |
navbar:
|
7 |
left:
|
8 |
- href: index.qmd
|
@@ -13,11 +18,6 @@ website:
|
|
13 |
text: "3️⃣ Low Code"
|
14 |
- href: use_case.qmd
|
15 |
text: "4️⃣ Anwendungsfall"
|
16 |
-
tools:
|
17 |
-
- icon: chat-dots
|
18 |
-
href: https://huggingface.co/spaces/datenwerkzeuge/CDL-Webscraping-Workshop-2025/discussions
|
19 |
-
- icon: code-slash
|
20 |
-
href: https://huggingface.co/spaces/datenwerkzeuge/CDL-Webscraping-Workshop-2025/tree/main
|
21 |
sidebar:
|
22 |
- title: "Start"
|
23 |
contents:
|
|
|
3 |
website:
|
4 |
title: "🧭 Collecting Data on the Web - Webscraping Workshop 2025"
|
5 |
page-navigation: true
|
6 |
+
repo-actions: [edit, source, issue]
|
7 |
+
repo-url: https://huggingface.co/spaces/datenwerkzeuge/CDL-Webscraping-Workshop-2025/
|
8 |
+
repo-subdir: src
|
9 |
+
repo-link-target: _blank
|
10 |
+
issue-url: https://huggingface.co/spaces/datenwerkzeuge/CDL-Webscraping-Workshop-2025/discussions
|
11 |
navbar:
|
12 |
left:
|
13 |
- href: index.qmd
|
|
|
18 |
text: "3️⃣ Low Code"
|
19 |
- href: use_case.qmd
|
20 |
text: "4️⃣ Anwendungsfall"
|
|
|
|
|
|
|
|
|
|
|
21 |
sidebar:
|
22 |
- title: "Start"
|
23 |
contents:
|