bsenst commited on
Commit
13e013d
·
1 Parent(s): 72d514b

add glossar, minor updates for setup section

Browse files
src/01_setup/erforderlich/huggingface.qmd CHANGED
@@ -4,6 +4,8 @@ description: "Eine Schritt-für-Schritt-Anleitung zum Duplizieren eines Spaces a
4
  image: _a180ffc3-5c47-48cd-9e8e-2d70bdb48cb7.jpeg
5
  ---
6
 
 
 
7
  ### 1: Ein Hugging Face-Konto erstellen
8
 
9
  1. **Besuche die Hugging Face-Website**:
 
4
  image: _a180ffc3-5c47-48cd-9e8e-2d70bdb48cb7.jpeg
5
  ---
6
 
7
+ Den Link, um dem Huggingface [Classroom](https://huggingface.co/datenwerkzeuge) beizutreten und die No-Code Anwendungen zu nutzen, teilen wir am Beginn des Workshops im Online Chat.
8
+
9
  ### 1: Ein Hugging Face-Konto erstellen
10
 
11
  1. **Besuche die Hugging Face-Website**:
src/01_setup/glossar.qmd ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ In der Welt des Internets und der Computerwissenschaften gibt es eine Vielzahl von Begriffen und Konzepten, die für das Verständnis und die Durchführung von Webscraping-Projekten relevant sind.
2
+
3
+
4
+ ## A wie Asynchrones Scraping
5
+ * AJAX (Asynchronous JavaScript and XML): Eine Gruppe von Webentwicklungstechniken, die für die Erstellung asynchroner Webanwendungen verwendet wird, was bedeutet, dass Webseiten dynamisch ohne Neuladen aktualisiert werden können.
6
+ * API (Application Programming Interface): Eine Sammlung von Definitionen und Protokollen, die es ermöglichen, dass Softwareanwendungen miteinander kommunizieren können. Wird oft verwendet, um Daten legal und effizient zu extrahieren.
7
+ * API Throttling: Eine Methode zur Einschränkung der Anzahl der API-Anfragen innerhalb eines bestimmten Zeitraums, um Überlastungen zu vermeiden.
8
+ * Asynchrones Scraping: Eine Technik, bei der mehrere Anfragen gleichzeitig abgesetzt werden, um die Effizienz zu erhöhen, oft mit Python's asyncio.
9
+
10
+ ## B wie BeautifulSoup
11
+ * BeautifulSoup: Eine Python-Bibliothek, die XML- und HTML-Dokumente analysiert und es ermöglicht, Daten aus diesen Dokumenten zu extrahieren.
12
+ * Bot Detection: Techniken, die von Websites verwendet werden, um zwischen menschlichen Benutzern und Automatisierungen (Bots) zu unterscheiden.
13
+
14
+ ## C wie CSS
15
+ * Callback: Eine Funktion, die an eine andere Funktion übergeben wird, um später ausgeführt zu werden, häufig in asynchronen Webscraping-Aufgaben verwendet.
16
+ * Content Delivery Network (CDN): Ein verteiltes Netzwerk von Servern, das Webinhalte anhand der geografischen Nähe des Benutzers liefert, was für Scraping-Standorte relevant sein kann.
17
+ * CORS (Cross-Origin Resource Sharing): Ein Mechanismus, der Webanwendungen ermöglicht, Ressourcen von einem anderen Ursprung anzufordern, was beim Scraping von Cross-Domain-Daten relevant sein kann.
18
+ * CSS Selector: Eine Methode, um Elemente in einem HTML-Dokument auszuwählen, basierend auf deren CSS-Eigenschaften.
19
+
20
+ ## D wie DOM
21
+ * Data Pipeline: Ein Prozess oder System zum Sammeln, Transformieren und Laden von Daten von einer Quelle zu einem Ziel, oft im Webscraping-Kontext.
22
+ * Dieses Glossar deckt einige der grundlegenden Begriffe ab, die beim Webscraping verwendet werden. Es gibt natürlich viele mehr spezialisierte Begriffe und Werkzeuge, aber dies sollte einen guten Überblick bieten.
23
+ * DOM (Document Object Model): Eine Programmierschnittstelle für HTML- und XML-Dokumente, die eine strukturierte Darstellung der Dokumente ermöglicht, um sie zu manipulieren und zu durchsuchen.
24
+ * DOM Manipulation: Der Vorgang, das Document Object Model einer Webseite zu ändern oder zu untersuchen, um Daten zu extrahieren oder Interaktionen zu simulieren.
25
+ * Dynamic Content: Inhalte auf einer Webseite, die erst nach dem Laden der Seite durch JavaScript generiert oder verändert werden, erfordern oft spezielle Scraping-Techniken.
26
+
27
+ ## E wie Element
28
+ * Elastic IP: Eine statische IP-Adresse, die in der Cloud-Computing-Umgebung verwendet wird und bei Bedarf an Instanzen zugewiesen werden kann, nützlich für langfristige Scraping-Projekte.
29
+ * Element: Ein einzelner Teil eines HTML- oder XML-Dokuments, wie z.B. ein <div> oder <p>-Tag, aus dem Daten extrahiert werden können.
30
+ * Encoding: Bezieht sich auf die Methode, mit der Daten in einem Webscraping-Kontext dargestellt und interpretiert werden, z.B. UTF-8.
31
+
32
+ ## F wie Fingerprinting
33
+ * Fiddler: Ein Web-Debugger, der verwendet werden kann, um HTTP-Verkehr zu überwachen, was beim Debuggen von Webscraping-Skripten hilfreich sein kann.
34
+ * Fingerprinting: Der Prozess der Erkennung und Identifizierung von Anfragen durch Analyse von Browser- und Benutzereigenschaften, um anti-scraping-Maßnahmen zu setzen.
35
+ * Frame Handling: Umgang mit Frames oder IFrames auf Webseiten, die separate HTML-Dokumente enthalten, die gesondert gescraped werden müssen.
36
+
37
+ ## G wie GeckoDriver
38
+ * GeckoDriver: Ein WebDriver für Firefox, verwendet in Verbindung mit Selenium, um das Verhalten von Webseiten in einem Firefox-Browser zu simulieren.
39
+ * GET vs. POST: HTTP-Methoden; GET wird verwendet, um Daten von einer spezifischen Ressource abzurufen, während POST Daten an den Server sendet, was beim Interagieren mit Formularen wichtig ist.
40
+ * Googlebot: Der Crawler von Google, der Webseiten durchsucht; das Verständnis seiner Verhalten kann helfen, wie Scraping-Algorithmen optimiert werden können.
41
+
42
+ ## H wie Headless
43
+ * Headless Browser: Ein Webbrowser ohne grafische Benutzeroberfläche, der von Skripten gesteuert wird, um Webseiten wie ein normaler Browser zu rendern, aber ohne Sichtbarkeit.
44
+ * Hier sind einige zusätzliche Begriffe, die in das Webscraping-Glossar aufgenommen werden können:
45
+ * Honeypot: Eine Falle, die von Websites platziert wird, um automatische Scraping- oder Hacking-Versuche zu erkennen und zu blockieren.
46
+ * HTML5: Die neueste Version von HTML, die viele neue Elemente und Attribute einführt, die beim Scraping berücksichtigt werden müssen.
47
+ * HTTP (Hypertext Transfer Protocol): Das Protokoll, das für die Übertragung von Webseiten und Daten über das Internet verwendet wird.
48
+
49
+ ## I wie IP-Rotation
50
+ * Implicit Wait: Eine Methode in Selenium, bei der der Browser für eine bestimmte Zeit auf Elemente wartet, bevor eine Ausnahme geworfen wird.
51
+ * Infinite Scroll: Eine Technik, bei der Inhalte dynamisch geladen werden, wenn der Benutzer nach unten scrollt, was spezielle Scraping-Methoden erfordert, um alle Daten zu erfassen.
52
+ * IP-Rotation: Technik zum Wechseln der IP-Adresse während des Scrapings, um IP-Bannungen zu vermeiden und den Eindruck zu erwecken, dass Anfragen von verschiedenen Nutzern kommen.
53
+
54
+ ## J wie JavaScript
55
+ * JavaScript: Eine Programmiersprache, die oft in Webseiten eingebettet ist, um interaktive Elemente hinzuzufügen. Webscraping kann manchmal JavaScript ausführen müssen, um dynamische Inhalte zu extrahieren.
56
+ * JQuery: Eine JavaScript-Bibliothek, die häufig verwendet wird, um die Interaktion mit HTML-Dokumenten zu vereinfachen, kann beim Scraping hilfreich sein, um Elemente zu selektieren.
57
+ * JSON (JavaScript Object Notation): Ein leichtgewichtiger Datenformat, das oft für die Übertragung von Daten zwischen einem Server und einer Webanwendung verwendet wird, was beim Scraping sehr nützlich ist.
58
+ * JSoup: Eine Java-Bibliothek zum Arbeiten mit real-world HTML, ähnlich wie BeautifulSoup in Python.
59
+
60
+ ## K wie Kibana
61
+ * Kibana: Ein Tool, das oft mit Elasticsearch und Logstash eingesetzt wird, um visualisierte Logs und Datenanalyse zu ermöglichen, kann auch für das Verständnis der gesammelten Daten beim Scraping genutzt werden.
62
+ * KML (Keyhole Markup Language): Ein XML-ähnliches Format zur Darstellung geografischer Daten, kann beim Scraping von Locationsdaten relevant sein.
63
+
64
+ ## L wie Lazy
65
+ * Lazy Loading: Ein Designmuster, bei dem Inhalte erst geladen werden, wenn sie benötigt werden, was beim Scraping bedeutet, dass man möglicherweise das Scrollen oder das Laden weiterer Inhalte simulieren muss.
66
+ * Link Extractor: Ein Tool oder Modul innerhalb von Webscraping-Frameworks, das speziell zum Finden und Extrahieren von Links auf Webseiten verwendet wird.
67
+ * Load Balancing: Die gleichmäßige Verteilung von Netzwerkverkehr über mehrere Server, kann Scraping-Anfragen beeinflussen.
68
+ * lxml: Eine Python-Bibliothek, die eine sehr schnelle und effiziente Möglichkeit bietet, HTML und XML zu parsen.
69
+
70
+ ## M wie Middleware
71
+ * Memcached: Ein leistungsfähiges, verteiltes Speichercachesystem, das verwendet werden kann, um häufig benötigte Daten zu speichern und den Zugriff zu beschleunigen.
72
+ * Microdata: Ein einfaches Syntax-Konzept für das Hinzufügen von Semantik zu Webseiten, das bei der Strukturierung von extrahierten Daten nützlich sein kann.
73
+ * Middleware: Zwischenschicht, die in Webscraping-Frameworks wie Scrapy verwendet wird, um Anfragen und Antworten zu bearbeiten, z.B. für Proxy-Management oder Cookies.
74
+ * Mobile Scraping: Das Scraping von Webseiten, die speziell für mobile Geräte optimiert sind, mit möglicherweise unterschiedlichem Layout und Inhalt.
75
+
76
+ ## N wie Non-blocking
77
+ * NavigableString: Ein String-Objekt in BeautifulSoup, das den Text innerhalb eines HTML-Tags repräsentiert.
78
+ * Node.js: Eine JavaScript-Laufzeitumgebung, die außerhalb des Browsers läuft und für server-seitiges Webscraping verwendet werden kann.
79
+ * Non-blocking I/O: Ein Programmierungsmodell, bei dem ein Aufruf nicht auf das Beenden der Operation wartet, was bei großen Scraping-Aufträgen effizient sein kann.
80
+
81
+ ## O wie OAuth
82
+ * OAuth: Ein offener Standard für die Autorisierung, der häufig verwendet wird, um auf APIs zuzugreifen, die eine Authentifizierung erfordern.
83
+ * OCR (Optical Character Recognition): Technologie zur Erkennung von Text in Bildern oder Scans, nützlich, wenn Webseiten Text als Bilder darstellen.
84
+ * Open Graph Protocol: Ein Protokoll, das Webseiten erlaubt, ihre Inhalte im sozialen Netzwerk zu repräsentieren, kann beim Scraping von sozialen Metadaten hilfreich sein.
85
+
86
+ ## P wie Parser
87
+ * Page Object Model: Ein Designmuster bei der Automatisierung, das die Repräsentation von Webseiten als Objekte mit bestimmten Methoden und Eigenschaften erlaubt.
88
+ * Parser: Ein Programm, das eine Struktur (wie HTML) in eine andere Form, die für die Verarbeitung geeignet ist, umwandelt.
89
+ * PhantomJS: War ein skriptbares Headless Webkit, das für Webscraping genutzt wurde; jedoch ist es seit 2018 nicht mehr weiterentwickelt.
90
+ * Proxy: Ein Server, der als Mittelsmann zwischen einem Client und dem Internet fungiert. Kann verwendet werden, um Anfragen zu maskieren oder den Standort des Scrapers zu verschleiern.
91
+ * Puppeteer: Eine Node.js-Bibliothek, die eine High-Level API zum Steuern von Headless Chrome oder Chromium über das DevTools-Protokoll bietet, oft für Webscraping verwendet.
92
+
93
+ ## Q wie Queue
94
+ * Queue: Eine Datenstruktur, die beim Scraping verwendet wird, um URLs zu speichern, die noch besucht werden müssen.
95
+
96
+ ## R wie Rate Limiting
97
+ * Rate Limiting: Ein Konzept, bei dem die Rate der Anfragen an einen Server begrenzt wird, um Überlastung zu vermeiden oder gemäß den API-Bedingungen zu handeln.
98
+ * Regex (Regular Expressions): Mächtige Suchmuster, die verwendet werden können, um spezifische Textmuster in Webseiten zu finden und zu extrahieren.
99
+ * Request Headers: Metadaten, die mit jeder HTTP-Anfrage gesendet werden, können manipuliert werden, um wie ein legitimer Benutzer zu erscheinen.
100
+ * Request: Ein Modul in Python, das es ermöglicht, HTTP-Anfragen zu senden. Wird oft im Zusammenhang mit Webscraping verwendet.
101
+ * Robots.txt: Eine Datei, die von Webseitenbetreibern verwendet wird, um zu definieren, welche Teile ihrer Website von Bots (wie Webscrapern) durchsucht werden dürfen.
102
+
103
+ ## S wie Selenium
104
+ * Scraper: Ein Skript oder Programm, das Daten von Websites extrahiert.
105
+ * Scrapy: Ein leistungsfähiges, schnell und gut dokumentiertes Framework für Webscraping in Python, das eine hohe Parallelität und einfache Datenspeicherung bietet.
106
+ * Selenium: Ein Tool, das hauptsächlich für das Testen von Web-Anwendungen verwendet wird, aber auch für Webscraping, da es eine Browser-Automatisierung bietet, um mit JavaScript-reichen Seiten umzugehen.
107
+ * Spider: Ein spezifischer Begriff für ein Programm oder Modul, das durch Webseiten navigiert und Daten sammelt, oft in Verbindung mit Frameworks wie Scrapy verwendet.
108
+ * Splash: Eine JavaScript-Rendering-Service, der oft mit Scrapy verwendet wird, um dynamische Webseiten zu rendern.
109
+
110
+ ## T wie Throttling
111
+ * Text Mining: Der Prozess der Extraktion von nützlichem Wissen aus Text, oft nach dem Scraping von Textinhalten.
112
+ * Throttling: Ein Mechanismus, um die Geschwindigkeit der Anfragen zu kontrollieren, um Server nicht zu überlasten oder Bannungen zu vermeiden.
113
+ * Timeouts: Einstellungen, die festlegen, wie lange ein Webscraper auf eine Antwort wartet, bevor er die Anfrage abbricht, um stabiles Scraping zu gewährleisten.
114
+ * Tor: Ein Netzwerk und Software, die Anonymität im Internet bieten, kann im Webscraping verwendet werden, um IP-Adressen zu maskieren.
115
+
116
+ ## U wie URL
117
+ * URL Normalization: Der Prozess der Standardisierung von URLs, um redundante oder ähnliche Links zu konsolidieren.
118
+ * URL-Parsing: Der Vorgang, eine URL zu analysieren, um ihre Bestandteile wie Schema, Host, Pfad etc. zu extrahieren, nützlich für das Verständnis von Webseitenstrukturen.
119
+ * User-Agent: Eine Zeichenfolge, die in HTTP-Anfragen gesendet wird, um Informationen über den Browser und das Betriebssystem des Clients zu liefern. Kann geändert werden, um wie ein normaler Benutzer zu erscheinen.
120
+
121
+ ## V wie Viewport
122
+ * Viewport: Der sichtbare Bereich eines Webseiten-Dokuments, der durch die Größe des Browserfensters bestimmt wird, wichtig bei der Extraktion von Daten, die nur durch Scrollen sichtbar werden.
123
+ * Virtual Private Server (VPS): Eine virtuelle Maschine verkauft als Dienst durch einen Internet-Hosting-Anbieter, oft verwendet für Webscraping, um eine stabile Umgebung zu bieten.
124
+
125
+ ## W wie WebSocket
126
+ * Web Crawler: Ein Programm, das systematisch Webseiten durchsucht, oft als Grundlage für Webscraping.
127
+ * Web Scraping Framework: Ein Softwaregerüst, das die Entwicklung von Webscraping-Projekten vereinfacht, indem es vorgefertigte Komponenten und Werkzeuge liefert.
128
+ * WebDriver: Ein Tool innerhalb von Selenium, das es ermöglicht, einen Browser zu steuern, um Webanwendungen zu testen oder zu scrapen.
129
+ * WebSockets: Ein Protokoll für bidirektionale Kommunikation zwischen Browser und Server, kann zum Scraping von real-time Daten verwendet werden.
130
+
131
+ ## X wie XPath
132
+ * XML Parsing: Der Vorgang des Analysierens von XML-Dokumenten, um Daten zu extrahieren, was im Webscraping besonders relevant ist, wenn Daten in XML-Format vorliegen.
133
+ * XPath: Ein Auswahlmechanismus für XML-Dokumente, der auch für HTML-Dokumente verwendet werden kann, um Elemente zu lokalisieren.
134
+ * XSL (Extensible Stylesheet Language): Ein Stylesheet-Sprachfamilie, die zur Transformation von XML-Dokumenten verwendet werden kann, was im Scraping relevant sein kann.
135
+
136
+ ## Y wie Yield
137
+ * Yield: In Python eine Schlüsselwörter, das in Generator-Funktionen verwendet wird, um ein Ergebnis zurückzugeben und die Ausführung zu pausieren, bis der nächste Wert angefordert wird, nützlich in Webscraping für effizientes Arbeiten mit großen Datenmengen.
138
+
139
+ ## Z wie
140
+ * Zope: Ein Python-Web-Framework, das manchmal im Zusammenhang mit Webscraping erwähnt wird, da es Tools und Bibliotheken bietet, die auch in Scraping-Projekten nützlich sein können.
141
+ * Zyte (ehemals Scrapinghub) ist ein führendes Unternehmen im Bereich der Web-Datenextraktion und bietet eine Vielzahl von Tools und Diensten, die Webscraping vereinfachen und skalieren. Hier sind einige der Hauptaspekte von Zyte:
src/03_low_code/catalogue.qmd CHANGED
@@ -13,3 +13,9 @@ listing:
13
 
14
  ::: {#catalogue}
15
  :::
 
 
 
 
 
 
 
13
 
14
  ::: {#catalogue}
15
  :::
16
+
17
+ ## Testscrapingseiten
18
+
19
+ * [bsenst.github.io/toscrape](https://bsenst.github.io/toscrape/)
20
+
21
+ * [toscrape.com](https://toscrape.com/)
src/04_use_case/laws/Gesetze_im_Internet_Aktualitätendienst.ipynb CHANGED
@@ -765,6 +765,15 @@
765
  "\n",
766
  "Diese Schritte haben uns gezeigt, wie man RSS-Feeds effektiv analysieren und visualisieren kann, um wertvolle Informationen zu extrahieren."
767
  ]
 
 
 
 
 
 
 
 
 
768
  }
769
  ],
770
  "metadata": {
 
765
  "\n",
766
  "Diese Schritte haben uns gezeigt, wie man RSS-Feeds effektiv analysieren und visualisieren kann, um wertvolle Informationen zu extrahieren."
767
  ]
768
+ },
769
+ {
770
+ "cell_type": "markdown",
771
+ "metadata": {},
772
+ "source": [
773
+ "## Weitere RSS Feeds als Quellen\n",
774
+ "\n",
775
+ "* [bundestag.de/rss](https://www.bundestag.de/rss)\n"
776
+ ]
777
  }
778
  ],
779
  "metadata": {
src/_quarto.yml CHANGED
@@ -1,7 +1,7 @@
1
  project:
2
  type: website
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/
@@ -44,6 +44,8 @@ website:
44
  text: "Hallo Quarto✨"
45
  - href: 01_setup/aufbereitung.qmd
46
  text: "Aufbereitung🤩"
 
 
47
  - title: "No Code"
48
  contents:
49
  - href: basics.qmd
 
1
  project:
2
  type: website
3
  website:
4
+ title: "🧭 Einstieg ins Web Scraping - Daten sammeln leicht gemacht"
5
  page-navigation: true
6
  repo-actions: [edit, source, issue]
7
  repo-url: https://huggingface.co/spaces/datenwerkzeuge/CDL-Webscraping-Workshop-2025/
 
44
  text: "Hallo Quarto✨"
45
  - href: 01_setup/aufbereitung.qmd
46
  text: "Aufbereitung🤩"
47
+ - href: 01_setup/glossar.qmd
48
+ text: "Glossar"
49
  - title: "No Code"
50
  contents:
51
  - href: basics.qmd
src/index.qmd CHANGED
@@ -1,6 +1,12 @@
1
 
2
  Herzlich willkommen zum Webscraping Workshop! Egal, ob Erste-Schritte oder Fortgeschritten, dieser Workshop soll wertvolle Einblicke und praktische Erfahrungen für jeden bieten.
3
 
 
 
 
 
 
 
4
  ## Navigation auf der Workshop Webseite 🧭
5
 
6
  ### Oben: Workshopschritte 👣
 
1
 
2
  Herzlich willkommen zum Webscraping Workshop! Egal, ob Erste-Schritte oder Fortgeschritten, dieser Workshop soll wertvolle Einblicke und praktische Erfahrungen für jeden bieten.
3
 
4
+ ## Reflektion 💭
5
+
6
+ * Hast du Programmierkenntnisse in Python?
7
+ * Hast du schon einmal Daten aus dem Internet extrahiert?
8
+ * Hast du schonmal Daten über eine API bezogen?
9
+
10
  ## Navigation auf der Workshop Webseite 🧭
11
 
12
  ### Oben: Workshopschritte 👣