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. | |
## A wie Asynchrones Scraping | |
* 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. | |
* 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. | |
* API Throttling: Eine Methode zur Einschränkung der Anzahl der API-Anfragen innerhalb eines bestimmten Zeitraums, um Überlastungen zu vermeiden. | |
* Asynchrones Scraping: Eine Technik, bei der mehrere Anfragen gleichzeitig abgesetzt werden, um die Effizienz zu erhöhen, oft mit Python's asyncio. | |
## B wie BeautifulSoup | |
* BeautifulSoup: Eine Python-Bibliothek, die XML- und HTML-Dokumente analysiert und es ermöglicht, Daten aus diesen Dokumenten zu extrahieren. | |
* Bot Detection: Techniken, die von Websites verwendet werden, um zwischen menschlichen Benutzern und Automatisierungen (Bots) zu unterscheiden. | |
## C wie CSS | |
* Callback: Eine Funktion, die an eine andere Funktion übergeben wird, um später ausgeführt zu werden, häufig in asynchronen Webscraping-Aufgaben verwendet. | |
* 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. | |
* 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. | |
* CSS Selector: Eine Methode, um Elemente in einem HTML-Dokument auszuwählen, basierend auf deren CSS-Eigenschaften. | |
## D wie DOM | |
* Data Pipeline: Ein Prozess oder System zum Sammeln, Transformieren und Laden von Daten von einer Quelle zu einem Ziel, oft im Webscraping-Kontext. | |
* 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. | |
* 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. | |
* DOM Manipulation: Der Vorgang, das Document Object Model einer Webseite zu ändern oder zu untersuchen, um Daten zu extrahieren oder Interaktionen zu simulieren. | |
* 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. | |
## E wie Element | |
* 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. | |
* Element: Ein einzelner Teil eines HTML- oder XML-Dokuments, wie z.B. ein <div> oder <p>-Tag, aus dem Daten extrahiert werden können. | |
* Encoding: Bezieht sich auf die Methode, mit der Daten in einem Webscraping-Kontext dargestellt und interpretiert werden, z.B. UTF-8. | |
## F wie Fingerprinting | |
* Fiddler: Ein Web-Debugger, der verwendet werden kann, um HTTP-Verkehr zu überwachen, was beim Debuggen von Webscraping-Skripten hilfreich sein kann. | |
* Fingerprinting: Der Prozess der Erkennung und Identifizierung von Anfragen durch Analyse von Browser- und Benutzereigenschaften, um anti-scraping-Maßnahmen zu setzen. | |
* Frame Handling: Umgang mit Frames oder IFrames auf Webseiten, die separate HTML-Dokumente enthalten, die gesondert gescraped werden müssen. | |
## G wie GeckoDriver | |
* GeckoDriver: Ein WebDriver für Firefox, verwendet in Verbindung mit Selenium, um das Verhalten von Webseiten in einem Firefox-Browser zu simulieren. | |
* 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. | |
* Googlebot: Der Crawler von Google, der Webseiten durchsucht; das Verständnis seiner Verhalten kann helfen, wie Scraping-Algorithmen optimiert werden können. | |
## H wie Headless | |
* Headless Browser: Ein Webbrowser ohne grafische Benutzeroberfläche, der von Skripten gesteuert wird, um Webseiten wie ein normaler Browser zu rendern, aber ohne Sichtbarkeit. | |
* Hier sind einige zusätzliche Begriffe, die in das Webscraping-Glossar aufgenommen werden können: | |
* Honeypot: Eine Falle, die von Websites platziert wird, um automatische Scraping- oder Hacking-Versuche zu erkennen und zu blockieren. | |
* HTML5: Die neueste Version von HTML, die viele neue Elemente und Attribute einführt, die beim Scraping berücksichtigt werden müssen. | |
* HTTP (Hypertext Transfer Protocol): Das Protokoll, das für die Übertragung von Webseiten und Daten über das Internet verwendet wird. | |
## I wie IP-Rotation | |
* Implicit Wait: Eine Methode in Selenium, bei der der Browser für eine bestimmte Zeit auf Elemente wartet, bevor eine Ausnahme geworfen wird. | |
* 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. | |
* 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. | |
## J wie JavaScript | |
* 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. | |
* 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. | |
* 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. | |
* JSoup: Eine Java-Bibliothek zum Arbeiten mit real-world HTML, ähnlich wie BeautifulSoup in Python. | |
## K wie Kibana | |
* 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. | |
* KML (Keyhole Markup Language): Ein XML-ähnliches Format zur Darstellung geografischer Daten, kann beim Scraping von Locationsdaten relevant sein. | |
## L wie Lazy | |
* 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. | |
* Link Extractor: Ein Tool oder Modul innerhalb von Webscraping-Frameworks, das speziell zum Finden und Extrahieren von Links auf Webseiten verwendet wird. | |
* Load Balancing: Die gleichmäßige Verteilung von Netzwerkverkehr über mehrere Server, kann Scraping-Anfragen beeinflussen. | |
* lxml: Eine Python-Bibliothek, die eine sehr schnelle und effiziente Möglichkeit bietet, HTML und XML zu parsen. | |
## M wie Middleware | |
* Memcached: Ein leistungsfähiges, verteiltes Speichercachesystem, das verwendet werden kann, um häufig benötigte Daten zu speichern und den Zugriff zu beschleunigen. | |
* 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. | |
* Middleware: Zwischenschicht, die in Webscraping-Frameworks wie Scrapy verwendet wird, um Anfragen und Antworten zu bearbeiten, z.B. für Proxy-Management oder Cookies. | |
* Mobile Scraping: Das Scraping von Webseiten, die speziell für mobile Geräte optimiert sind, mit möglicherweise unterschiedlichem Layout und Inhalt. | |
## N wie Non-blocking | |
* NavigableString: Ein String-Objekt in BeautifulSoup, das den Text innerhalb eines HTML-Tags repräsentiert. | |
* Node.js: Eine JavaScript-Laufzeitumgebung, die außerhalb des Browsers läuft und für server-seitiges Webscraping verwendet werden kann. | |
* 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. | |
## O wie OAuth | |
* OAuth: Ein offener Standard für die Autorisierung, der häufig verwendet wird, um auf APIs zuzugreifen, die eine Authentifizierung erfordern. | |
* OCR (Optical Character Recognition): Technologie zur Erkennung von Text in Bildern oder Scans, nützlich, wenn Webseiten Text als Bilder darstellen. | |
* Open Graph Protocol: Ein Protokoll, das Webseiten erlaubt, ihre Inhalte im sozialen Netzwerk zu repräsentieren, kann beim Scraping von sozialen Metadaten hilfreich sein. | |
## P wie Parser | |
* Page Object Model: Ein Designmuster bei der Automatisierung, das die Repräsentation von Webseiten als Objekte mit bestimmten Methoden und Eigenschaften erlaubt. | |
* Parser: Ein Programm, das eine Struktur (wie HTML) in eine andere Form, die für die Verarbeitung geeignet ist, umwandelt. | |
* PhantomJS: War ein skriptbares Headless Webkit, das für Webscraping genutzt wurde; jedoch ist es seit 2018 nicht mehr weiterentwickelt. | |
* 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. | |
* 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. | |
## Q wie Queue | |
* Queue: Eine Datenstruktur, die beim Scraping verwendet wird, um URLs zu speichern, die noch besucht werden müssen. | |
## R wie Rate Limiting | |
* 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. | |
* Regex (Regular Expressions): Mächtige Suchmuster, die verwendet werden können, um spezifische Textmuster in Webseiten zu finden und zu extrahieren. | |
* Request Headers: Metadaten, die mit jeder HTTP-Anfrage gesendet werden, können manipuliert werden, um wie ein legitimer Benutzer zu erscheinen. | |
* Request: Ein Modul in Python, das es ermöglicht, HTTP-Anfragen zu senden. Wird oft im Zusammenhang mit Webscraping verwendet. | |
* Robots.txt: Eine Datei, die von Webseitenbetreibern verwendet wird, um zu definieren, welche Teile ihrer Website von Bots (wie Webscrapern) durchsucht werden dürfen. | |
## S wie Selenium | |
* Scraper: Ein Skript oder Programm, das Daten von Websites extrahiert. | |
* Scrapy: Ein leistungsfähiges, schnell und gut dokumentiertes Framework für Webscraping in Python, das eine hohe Parallelität und einfache Datenspeicherung bietet. | |
* 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. | |
* 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. | |
* Splash: Eine JavaScript-Rendering-Service, der oft mit Scrapy verwendet wird, um dynamische Webseiten zu rendern. | |
## T wie Throttling | |
* Text Mining: Der Prozess der Extraktion von nützlichem Wissen aus Text, oft nach dem Scraping von Textinhalten. | |
* Throttling: Ein Mechanismus, um die Geschwindigkeit der Anfragen zu kontrollieren, um Server nicht zu überlasten oder Bannungen zu vermeiden. | |
* Timeouts: Einstellungen, die festlegen, wie lange ein Webscraper auf eine Antwort wartet, bevor er die Anfrage abbricht, um stabiles Scraping zu gewährleisten. | |
* Tor: Ein Netzwerk und Software, die Anonymität im Internet bieten, kann im Webscraping verwendet werden, um IP-Adressen zu maskieren. | |
## U wie URL | |
* URL Normalization: Der Prozess der Standardisierung von URLs, um redundante oder ähnliche Links zu konsolidieren. | |
* 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. | |
* 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. | |
## V wie Viewport | |
* 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. | |
* 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. | |
## W wie WebSocket | |
* Web Crawler: Ein Programm, das systematisch Webseiten durchsucht, oft als Grundlage für Webscraping. | |
* Web Scraping Framework: Ein Softwaregerüst, das die Entwicklung von Webscraping-Projekten vereinfacht, indem es vorgefertigte Komponenten und Werkzeuge liefert. | |
* WebDriver: Ein Tool innerhalb von Selenium, das es ermöglicht, einen Browser zu steuern, um Webanwendungen zu testen oder zu scrapen. | |
* WebSockets: Ein Protokoll für bidirektionale Kommunikation zwischen Browser und Server, kann zum Scraping von real-time Daten verwendet werden. | |
## X wie XPath | |
* 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. | |
* XPath: Ein Auswahlmechanismus für XML-Dokumente, der auch für HTML-Dokumente verwendet werden kann, um Elemente zu lokalisieren. | |
* XSL (Extensible Stylesheet Language): Ein Stylesheet-Sprachfamilie, die zur Transformation von XML-Dokumenten verwendet werden kann, was im Scraping relevant sein kann. | |
## Y wie Yield | |
* 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. | |
## Z wie | |
* 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. | |
* 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: |