Web Scraping mit JavaScript und Node.Js
Robert Sfichi am 16. Januar 2023
Seien wir doch mal ehrlich. Von jetzt an wird das Datenvolumen im Internet immer größer werden. Dagegen können wir wirklich nichts tun. An dieser Stelle kommen Web Scraper ins Spiel.
Im folgenden Artikel zeigen wir Ihnen, wie Sie Ihren eigenen Web Scraper mit JavaScript als Hauptprogrammiersprache erstellen können.
Verstehen von Web Scraping mit JavaScript
Ein Web Scraper ist eine Software, die Ihnen hilft, den mühsamen Prozess der Sammlung nützlicher Daten von Websites Dritter zu automatisieren. Normalerweise beinhaltet dieses Verfahren eine Anfrage an eine bestimmte Webseite, das Lesen des HTML-Codes und das Aufschlüsseln dieses Codes, um Daten zu sammeln.
Warum sollte jemand Daten auslesen?
Angenommen, Sie möchten eine Preisvergleichsplattform erstellen. Sie benötigen die Preise mehrerer Artikel von mehreren Online-Shops. Ein Web-Scraping-Tool kann Ihnen dabei helfen, dies in ein paar Minuten zu erledigen.
Vielleicht versuchen Sie, neue Kontakte für Ihr Unternehmen zu knüpfen oder sogar die günstigsten Flug- oder Hotelpreise zu bekommen. Während wir für diesen Artikel im Internet recherchiert haben, sind wir auf Brisk Voyage gestoßen.
Brisk Voyage ist eine Webanwendung, die ihren Nutzern hilft, günstige Last-Minute-Wochenendreisen zu finden. Mithilfe einer Art Web Scraping-Technologie werden die Flug- und Hotelpreise ständig überprüft. Wenn der Web Scraper eine Reise findet, die ein preislicher Ausreißer ist, erhält der Nutzer eine E-Mail mit den Buchungsanweisungen.
Wozu werden Web Scraper eingesetzt?
Entwickler verwenden Web Scraper für alle Arten der Datenbeschaffung, aber die am häufigsten verwendeten Fälle sind die folgenden:
- Marktanalyse
- Vergleich der Preise
- Generierung von Leads
- Akademische Forschung
- Sammlung von Trainings- und Testdatensätzen für maschinelles Lernen
Was sind die Herausforderungen beim Web Scraping mit JavaScript und Node.Js?
Kennen Sie diese kleinen Kästchen, mit denen Sie zugeben müssen, dass Sie kein Roboter sind? Na ja, sie halten die Bots nicht immer erfolgreich fern.
Meistens ist das aber der Fall, und wenn Suchmaschinen herausfinden, dass Sie versuchen, ihre Website ohne Erlaubnis zu scrapen, schränken sie Ihren Zugang ein.
Ein weiteres Hindernis für Web-Scraper sind die Änderungen in der Struktur einer Website. Eine kleine Änderung in der Struktur der Website kann uns viel Zeit kosten. Web-Scraping-Tools müssen häufig aktualisiert werden, um sich anzupassen und die Arbeit zu erledigen.
Eine weitere Herausforderung für Web-Scraper ist das so genannte Geo-Blocking. Anhand Ihres Standorts kann eine Website Ihren Zugang vollständig sperren, wenn Anfragen aus nicht vertrauenswürdigen Regionen kommen.
Um diese Herausforderungen zu bewältigen und Ihnen zu helfen, sich auf die Entwicklung Ihres Produkts zu konzentrieren, haben wir WebScrapingAPI entwickelt. Dabei handelt es sich um eine benutzerfreundliche, skalierbare API für Unternehmen, die Sie bei der Erfassung und Verwaltung von HTML-Daten unterstützt. Wir sind besessen von Geschwindigkeit, verwenden ein globales rotierendes Proxy-Netzwerk und haben bereits mehr als 10.000 Kunden, die unsere Dienste nutzen. Wenn Sie das Gefühl haben, dass Sie nicht die Zeit haben, den Web Scraper von Grund auf zu entwickeln, können Sie WebScrapingAPI mit der kostenlosen Version ausprobieren.
APIs: Der einfache Weg zum Web Scraping
Die meisten Webanwendungen stellen eine API zur Verfügung, die es den Benutzern ermöglicht, auf ihre Daten in einer vorher festgelegten, organisierten Weise zuzugreifen. Der Benutzer stellt eine Anfrage an einen bestimmten Endpunkt und die Anwendung antwortet mit allen Daten, die der Benutzer speziell angefordert hat. In den meisten Fällen sind die Daten bereits als JSON-Objekt formatiert.
Wenn Sie eine Anwendungsprogrammierschnittstelle verwenden, müssen Sie sich in der Regel nicht um die zuvor genannten Hindernisse kümmern. Wie dem auch sei, auch APIs können Aktualisierungen erhalten. In diesem Fall muss der Benutzer die von ihm verwendete API immer im Auge behalten und den Code entsprechend aktualisieren, um die Funktionalität nicht zu verlieren.
Außerdem ist die Dokumentation einer API von großer Bedeutung. Wenn eine API-Funktionalität nicht klar dokumentiert ist, vergeudet der Benutzer viel Zeit.
Das Web verstehen
Ein gutes Verständnis des Internets erfordert viel Wissen. Lassen Sie uns eine kurze Einführung in alle Begriffe geben, die Sie brauchen, um Web Scraping besser zu verstehen.
HTTP oder HyperText Transfer Protocol ist die Grundlage für jeden Datenaustausch im Internet. Wie der Name schon sagt, handelt es sich bei HTTP um eine Client-Server-Konvention. Ein HTTP-Client, z. B. ein Webbrowser, öffnet eine Verbindung zu einem HTTP-Server und sendet eine Nachricht, z. B.: "Hey! Was gibt's? Kannst du mir diese Bilder geben?". Der Server antwortet in der Regel mit einem HTML-Code und schließt die Verbindung.
Nehmen wir an, Sie müssen Google besuchen. Wenn Sie die Adresse in den Webbrowser eingeben und die Eingabetaste drücken, sendet der HTTP-Client (der Browser) die folgende Nachricht an den Server:
GET / HTTP/1.1
Host: google.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/web\p,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch, br
Connection: keep-aliveUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit\/537.36 (KHTML, wie Gecko) Chrome/56.0.2924.87 Safari/537.36
Die erste Zeile der Nachricht enthält die Anfragemethode (GET), den Pfad, an den wir die Anfrage gerichtet haben (in unserem Fall nur '/', weil wir nur auf www.google.com zugegriffen haben), die Version des HTTP-Protokolls und mehrere Header wie Connection oder User-Agent.
Lassen Sie uns über die wichtigsten Header-Felder für den Prozess sprechen:
- Host: Der Domänenname des Servers, auf den Sie zugreifen, nachdem Sie die Adresse in den Webbrowser eingegeben und die Eingabetaste gedrückt haben.
- User-Agent: Hier können wir Details zum Client sehen, der die Anfrage gestellt hat. Ich benutze ein MacBook, wie Sie am __(Macintosh; Intel Mac OS X 10_11_6)__ Teil sehen können, und Chrome als Webbrowser __(Chrome/56.0.2924.87)__.
- Akzeptieren: Mit diesem Header zwingt der Client den Server, ihm nur bestimmte Antworttypen zu senden, wie application/JSON oder text/plain.
- Referrer: Dieses Header-Feld enthält die Adresse der Seite, von der die Anfrage ausgeht. Websites verwenden diese Kopfzeile, um ihren Inhalt zu ändern, je nachdem, woher der Nutzer kommt.
Eine Serverantwort kann wie folgt aussehen:
HTTP/1.1 200 OK
Server: nginx/1.4.6 (Ubuntu) Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>The content of the document</body>
</html>
Wie Sie sehen können, steht in der ersten Zeile der HTTP-Antwortcode: **200OK. Dies bedeutet, dass die Scraping-Aktion erfolgreich war.
Hätten wir nun die Anfrage mit einem Webbrowser gesendet, hätte dieser den HTML-Code analysiert, alle anderen Elemente wie CSS, JavaScript-Dateien und Bilder abgerufen und die endgültige Version der Webseite gerendert. In den folgenden Schritten werden wir versuchen, diesen Prozess zu automatisieren.
Verstehen von Web Scraping mit Node.Js
JavaScript wurde ursprünglich entwickelt, um seinen Benutzern zu helfen, dynamische Inhalte zu Websites hinzuzufügen. Zu Beginn konnte es nicht direkt mit einem Computer oder seinen Daten interagieren. Wenn Sie eine Website aufrufen, wird das JavaScript vom Browser gelesen und in ein paar Codezeilen umgewandelt, die der Computer verarbeiten kann.
Wir stellen Node.Js vor, das Tool, mit dem Javascript nicht nur clientseitig, sondern auch serverseitig ausgeführt werden kann. Node.Js kann als freies, quelloffenes JavaScript für die serverseitige Programmierung definiert werden. Es hilft seinen Nutzern, Netzwerkanwendungen schnell zu erstellen und auszuführen.
const http = require('http');
const port = 8000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello world!');
});
server.listen(port, () => {
console.log(`Server running on port 8000.`);
});
Wenn Sie Node.Js nicht installiert haben, finden Sie im nächsten Schritt die folgenden Anweisungen. Erstellen Sie andernfalls eine neue index.js-Datei und führen Sie sie aus, indem Sie in einem Terminal node index.js eingeben, einen Browser öffnen und zu localhost:8000 navigieren. Sie sollten die folgende Zeichenkette sehen: "Hello world!".
Erforderliche Werkzeuge
Chrome - Bitte folgen Sie der Installationsanleitung hier.
- VSCode - Sie können es von dieser Seite herunterladen und den Anweisungen folgen, um es auf Ihrem Gerät zu installieren.
- Node.Js - Bevor Sie Axios, Cheerio oder Puppeteer verwenden können, müssen Sie Node.Js und den Node Package Manager installieren. Der einfachste Weg, Node.Js und NPM zu installieren, ist, einen der Installer aus der offiziellen Node.Js-Quelle zu holen und ihn auszuführen.
Nach Abschluss der Installation können Sie überprüfen, ob Node.Js installiert ist, indem Sie node -v und npm -v in einem Terminalfenster ausführen. Die Version sollte höher als v14.15.5 sein. Wenn Sie Probleme mit diesem Prozess haben, gibt es eine alternative Möglichkeit, Node.Js zu installieren.
Lassen Sie uns nun ein neues NPM-Projekt erstellen. Erstellen Sie einen neuen Ordner für das Projekt und führen Sie npm init -y aus. Jetzt können wir mit der Installation der Abhängigkeiten beginnen.
- Axios - eine JavaScript-Bibliothek, die verwendet wird, um HTTP-Anfragen von Node.Js aus zu stellen. Führen Sie npm install axios in dem neu erstellten Ordner aus.
- Cheerio - an open-source library that helps us to extract useful information by parsing markup and providing an API for manipulating the resulting data. To use Cheerio you can select tags of an HTML document by making use of selectors. A selector looks like this: $("div"). This specific selector helps us pick all <div> elements on a page.
Um Cheerio zu installieren, führen Sie bitte npm install cheerio im Ordner des Projekts aus.
- Puppeteer - eine Node.Js-Bibliothek, die verwendet wird, um die Kontrolle über Chrome oder Chromium durch die Bereitstellung einer High-Level-API zu erhalten.
Um Puppeteer zu verwenden, müssen Sie es mit einem ähnlichen Befehl installieren: npm install puppeteer. Beachten Sie, dass bei der Installation dieses Pakets auch eine aktuelle Version von Chromium installiert wird, die garantiert mit Ihrer Version von Puppeteer kompatibel ist.
Überprüfung der Datenquelle
Zunächst müssen Sie mit Chrome oder einem anderen Webbrowser auf die Website zugreifen, die Sie auslesen möchten. Um die benötigten Daten erfolgreich zu scrapen, müssen Sie die Struktur der Website verstehen.
Gezielte Website-Inspektion
Wenn Sie es geschafft haben, auf die Website zuzugreifen, nutzen Sie sie wie ein normaler Benutzer. Wenn Sie auf das Subreddit /r/dundermifflin zugegriffen haben, können Sie sich die Beiträge auf der Hauptseite ansehen, indem Sie auf sie klicken, die Kommentare und die Bewertungen lesen und die Beiträge sogar nach der Anzahl der Stimmen in einem bestimmten Zeitraum sortieren.

Wie Sie sehen können, enthält die Website eine Liste von Beiträgen, und jeder Beitrag hat einige Bewertungen und einige Kommentare.
Man kann viele Daten einer Website verstehen, wenn man sich nur ihre URL ansieht. In diesem Fall steht https://www.old.reddit.com/r/DunderMifflin für die Basis-URL, den Pfad, der uns zur Reddit-Community "The Office" führt. Wenn Sie beginnen, die Beiträge nach der Anzahl der Stimmen zu sortieren, können Sie sehen, dass sich die Basis-URL zu https://www.old.reddit.com/r/DunderMifflin/top/?t=year ändert.
Bei den Abfrageparametern handelt es sich um Erweiterungen der URL, die dazu dienen, bestimmte Inhalte oder Aktionen auf der Grundlage der übergebenen Daten zu definieren. In unserem Fall steht "?t=year" für den ausgewählten Zeitraum, für den wir die am häufigsten hochgestuften Beiträge sehen wollen.
Solange Sie sich noch in diesem speziellen Subreddit befinden, bleibt die Basis-URL gleich. Das Einzige, was sich ändern wird, sind die Abfrageparameter. Wir können sie als die Filter betrachten, die auf die Datenbank angewendet werden, um die gewünschten Daten abzurufen. Sie können den Zeitrahmen ändern, um nur die am häufigsten hochgevoteten Beiträge des letzten Monats oder der letzten Woche anzuzeigen, indem Sie einfach die URL ändern.
Inspektion mit Entwickler-Tools
In den folgenden Schritten werden Sie mehr darüber erfahren, wie die Informationen auf der Seite organisiert sind. Sie müssen dies tun, um besser zu verstehen, was wir tatsächlich aus unserer Quelle auslesen können.
Mit den Entwickler-Tools können Sie das Document Object Model (DOM) der Website interaktiv erkunden. Wir werden die Entwicklertools in Chrome verwenden, aber Sie können jeden Webbrowser benutzen, mit dem Sie vertraut sind. In Chrome können Sie sie öffnen, indem Sie mit der rechten Maustaste auf eine beliebige Stelle der Seite klicken und die Option "Inspect" auswählen.

In dem neuen Menü, das auf dem Bildschirm erscheint, wählen Sie bitte die Registerkarte "Elemente". Dadurch wird die interaktive HTML-Struktur der Website angezeigt.

Sie können mit der Website interagieren, indem Sie ihre Struktur bearbeiten, Elemente aus- und einklappen oder sogar löschen. Beachten Sie, dass diese Änderungen nur für Sie sichtbar sind.
Reguläre Ausdrücke und ihre Rolle
Reguläre Ausdrücke, auch bekannt als RegEx, helfen Ihnen bei der Erstellung von Regeln, mit denen Sie verschiedene Zeichenfolgen finden und verwalten können. Wenn Sie jemals große Mengen an Informationen analysieren müssen, kann die Beherrschung der Welt der regulären Ausdrücke Ihnen viel Zeit sparen.
When you first start using regex, it seems to be a little too complicated, but the truth is they're pretty easy to use. Let's take the following example: \d. By using this expression, you can easily grab any digit from 0 to 9. Of course, there are a lot more complex ones, like: ^(\(\d{3}\)|^\d{3}[.-]?)?\d{3}[.-]?\d{4}$. This matches a phone number, with or without parentheses around the area code, or with or without dots to separate the numbers.
Wie Sie sehen können, sind reguläre Ausdrücke ziemlich einfach zu verwenden und können sehr leistungsfähig sein, wenn Sie genug Zeit damit verbringen, sie zu beherrschen.
Cheerio.js verstehen
Nachdem Sie alle zuvor vorgestellten Abhängigkeiten erfolgreich installiert und das DOM mit den Entwickler-Tools inspiziert haben, können Sie mit dem eigentlichen Scraping beginnen.
Eine Sache, die Sie beachten sollten, ist, dass Cheerio möglicherweise nicht die beste Lösung ist, wenn die Seite, die Sie scrapen wollen, eine SPA (Single Page Application) ist. Der Grund dafür ist, dass Cheerio nicht wirklich wie ein Webbrowser denken kann. Aus diesem Grund werden wir in den folgenden Schritten Puppeteer verwenden. Aber bis dahin wollen wir erst einmal herausfinden, wie leistungsfähig Cheerio ist.
Um die Funktionalität von Cheerio zu testen, wollen wir versuchen, alle Beitragstitel in dem zuvor vorgestellten Subreddit zu sammeln: /r/dundermifflin.
Erstellen wir eine neue Datei mit dem Namen index.js und geben Sie die folgenden Zeilen ein oder kopieren Sie sie einfach:
const axios = require("axios");
const cheerio = require("cheerio");
const fetchTitles = async () => {
try {
const response = await axios.get('https://old.reddit.com/r/DunderMifflin/');
const html = response.data;
const $ = cheerio.load(html);
const titles = [];
$('div > p.title > a').each((_idx, el) => {
const title = $(el).text()
titles.push(title)
});
return titles;
} catch (error) {
throw error;
}};
fetchTitles().then((titles) => console.log(titles));
Um den oben geschriebenen Code besser zu verstehen, werden wir erklären, was die asynchrone Funktion fetchTitles() tut:
Zuerst stellen wir eine GET-Anfrage an die alte Reddit-Website mit der Axios-Bibliothek. Das Ergebnis dieser Anfrage wird dann von Cheerio in Zeile 10 geladen. Mithilfe der Entwicklertools haben wir herausgefunden, dass die Elemente, die die gewünschten Informationen enthalten, ein paar Anker-Tags sind. Um sicherzugehen, dass wir nur die Anker-Tags auswählen, die den Titel des Beitrags enthalten, wählen wir auch ihre Eltern aus, indem wir den folgenden Selektor verwenden: $('div > p.title > a')
Um jeden Titel einzeln zu erhalten und nicht nur einen großen Haufen Buchstaben, die keinen Sinn ergeben, müssen wir mit der Funktion each() eine Schleife durch jeden Beitrag ziehen. Der Aufruf von text() für jedes Element liefert mir schließlich den Titel des jeweiligen Beitrags.
Zum Ausführen geben Sie einfach node index.js in das Terminal ein und drücken die Eingabetaste. Sie sollten ein Array mit allen Titeln der Beiträge sehen.
DOM für NodeJS
Da das DOM einer Webseite für Node.Js nicht direkt verfügbar ist, können wir JSDOM verwenden. Laut Dokumentation ist JSDOM eine reine JavaScript-Implementierung vieler Webstandards, insbesondere der WHATWG DOM- und HTML-Standards, für die Verwendung mit Node.Js.
Mit anderen Worten, mit JSDOM können wir ein DOM erstellen und es mit denselben Methoden manipulieren, die wir auch für die Manipulation des Webbrowsers verwenden würden.
JSDOM ermöglicht Ihnen die Interaktion mit einer Website, die Sie crawlen müssen. Wenn Sie mit der Manipulation des DOM des Webbrowsers vertraut sind, erfordert das Verständnis der JSDOM-Funktionen nicht viel Aufwand.
Um besser zu verstehen, wie JSDOM funktioniert, installieren wir es, erstellen eine neue index.js-Datei und geben oder kopieren den folgenden Code:
const { JSDOM } = require('jsdom')
const { document } = new JSDOM(
'<h1 class="string">Dunder mifflin, the people person\'s paper people!</h2>'
).window
const string = document.querySelector('.string')
console.log(string.innerHTML)
string.textContent = 'Hello world'
console.log(string.innerHTML)
Wie Sie sehen, erstellt JSDOM ein neues Document Object Model, das mit der gleichen Methode manipuliert werden kann, mit der wir auch das DOM des Browsers manipulieren. In Zeile 3 wird ein neues h1-Element im DOM erstellt. Mit Hilfe der Klasse, die der Überschrift zugeordnet ist, wählen wir das Element in Zeile 7 aus und ändern seinen Inhalt in Zeile 10. Sie können den Unterschied sehen, indem Sie das DOM-Element vor und nach der Änderung ausdrucken.
Um es auszuführen, öffnen Sie ein neues Terminal, geben Sie node index.js ein und drücken Sie die Eingabetaste.
Natürlich können Sie mit JSDOM auch viel komplexere Aktionen durchführen, z. B. eine Webseite öffnen und mit ihr interagieren, Formulare ausfüllen und auf Schaltflächen klicken.
Für was es wert ist JSDOM es ist eine gute Option, aber Puppeteer gewann eine Menge Zugkraft in den letzten Jahren.
Puppeteer verstehen: wie man JavaScript-Seiten entwirrt
Mit Puppeteer können Sie die meisten Dinge tun, die Sie manuell in einem Webbrowser erledigen können, z. B. ein Formular ausfüllen, Screenshots von Seiten erstellen oder UI-Tests automatisieren.
Versuchen wir, die Funktionalität besser zu verstehen, indem wir einen Screenshot der /r/dundermifflin Reddit-Community machen. Wenn Sie die Abhängigkeit bereits installiert haben, fahren Sie mit dem nächsten Schritt fort. Wenn nicht, führen Sie bitte npm i puppeteer im Ordner projects aus. Erstellen Sie nun eine neue index.js-Datei und tippen oder kopieren Sie den folgenden Code:
const puppeteer = require('puppeteer')
async function takeScreenshot() {
try {
const URL = 'https://www.old.reddit.com/r/dundermifflin/'
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto(URL)
await page.pdf({ path: 'page.pdf' })
await page.screenshot({ path: 'screenshot.png' })
await browser.close()
} catch (error) {
console.error(error)
}
}
takeScreenshot()
Wir haben die asynchrone Funktion takeScreenshot() erstellt.
Wie Sie sehen können, wird zunächst eine Instanz des Browsers mit dem Befehl puppeteer.launch() gestartet. Dann erstellen wir eine neue Seite, und durch den Aufruf der Funktion goto() mit der URL als Parameter wird die zuvor erstellte Seite zu dieser speziellen URL geleitet. Die Methoden pdf() und screenshot() helfen uns, eine neue PDF-Datei und ein Bild zu erstellen, das die Webseite als visuelle Komponente enthält.
Schließlich wird die Browserinstanz in Zeile 13 geschlossen. Um es auszuführen, geben Sie node index.js in das Terminal ein und drücken Sie die Eingabetaste. Im Projektordner sollten zwei neue Dateien mit den Namen page.pdf und screenshot.png erscheinen.
Alternative zu Puppenspieler
Wenn Sie sich mit Puppeteer nicht wohl fühlen, können Sie jederzeit eine Alternative wie NightwatchJS, NightmareJS oder CasperJS verwenden.
Nehmen wir zum Beispiel Nightmare. Da es Electrons anstelle von Chromium verwendet, ist die Größe des Pakets ein wenig kleiner. Nightmare kann mit dem Befehl npm I nightmare installiert werden. Wir werden versuchen, den zuvor erfolgreichen Prozess, einen Screenshot der Seite zu erstellen, mit Nightmare anstelle von Puppeteer zu wiederholen.
Erstellen Sie eine neue index.js-Datei und geben Sie den folgenden Code ein oder kopieren Sie ihn:
const Nightmare = require('nightmare')
const nightmare = new Nightmare()
return nightmare.goto('https://www.old.reddit.com/r/dundermifflin')
.screenshot('./nightmare-screenshot.png')
.end()
.then(() => {
console.log('Done!')
})
.catch((err) => {
console.error(err)
})
Wie Sie in Zeile 2 sehen können, erstellen wir eine neue Nightmare-Instanz, zeigen mit dem Browser auf die Webseite, von der wir einen Screenshot machen wollen, machen und speichern den Screenshot in Zeile 5 und beenden die Nightmare-Sitzung in Zeile 6.
Um es auszuführen, geben Sie node index.js in das Terminal ein und drücken Sie die Eingabetaste. Sie sollten zwei neue Dateien nightmare-screenshot.png im Ordner projects sehen.
Wichtigste Erkenntnisse
Wenn Sie noch hier sind, herzlichen Glückwunsch! Sie haben alle Informationen, die Sie brauchen, um Ihren eigenen Web Scraper zu bauen. Nehmen wir uns eine Minute Zeit, um zusammenzufassen, was Sie bisher gelernt haben:
- Ein Web Scraper ist eine Software, die Ihnen hilft, den mühsamen Prozess des Sammelns nützlicher Daten von Websites Dritter zu automatisieren.
- Web Scraper werden für alle Arten der Datenbeschaffung eingesetzt: Marktanalysen, Preisvergleiche oder Lead-Generierung.
- HTTP-Clients wie Webbrowser helfen Ihnen, Anfragen an einen Server zu stellen und eine Antwort zu erhalten.
- JavaScript wurde ursprünglich entwickelt, um seinen Nutzern zu helfen, dynamische Inhalte zu Websites hinzuzufügen. Node.Js ist ein Tool, mit dem Javascript nicht nur clientseitig, sondern auch serverseitig ausgeführt werden kann.
- Cheerio ist eine Open-Source-Bibliothek, die uns hilft, nützliche Informationen zu extrahieren, indem sie HTML analysiert und eine API für die Bearbeitung der resultierenden Daten bereitstellt.
- Puppeteer ist eine Node.Js-Bibliothek, die verwendet wird, um die Kontrolle über Chrome oder Chromium zu erhalten, indem sie eine High-Level-API bereitstellt. Dank ihr können Sie die meisten Dinge tun, die Sie manuell in einem Webbrowser tun können, wie das Ausfüllen eines Formulars, das Erstellen von Screenshots von Seiten oder das Automatisieren.
- Ein Großteil der Daten einer Website lässt sich allein anhand der URL ablesen.
- Mit den Entwickler-Tools können Sie das Document Object Model der Website interaktiv erkunden.
- Mit regulären Ausdrücken können Sie Regeln erstellen, mit denen Sie verschiedene Zeichenfolgen finden und verwalten können.
- JSDOM ist ein Werkzeug, das ein neues Dokumentobjektmodell erstellt, das mit der gleichen Methode bearbeitet werden kann, mit der auch das DOM des Browsers bearbeitet wird.
Wir hoffen, dass die Anweisungen klar waren und Sie alle benötigten Informationen für Ihr nächstes Projekt erhalten haben. Wenn Sie immer noch das Gefühl haben, dass Sie es nicht selbst machen wollen, können Sie jederzeit WebScrapingAPI ausprobieren.
Danke, dass Sie bis zum Ende durchgehalten haben!
Nachrichten und Aktualisierungen
Bleiben Sie auf dem Laufenden mit den neuesten Web Scraping-Anleitungen und Nachrichten, indem Sie unseren Newsletter abonnieren.
We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

Ähnliche Artikel

Erforschen Sie die transformative Kraft des Web Scraping im Finanzsektor. Von Produktdaten bis zur Stimmungsanalyse bietet dieser Leitfaden Einblicke in die verschiedenen Arten von Webdaten, die für Investitionsentscheidungen zur Verfügung stehen.


Starten Sie mit WebScrapingAPI, der ultimativen Web-Scraping-Lösung! Sammeln Sie Echtzeitdaten, umgehen Sie Anti-Bot-Systeme und genießen Sie professionellen Support.


Erfahren Sie, welcher Browser am besten geeignet ist, um Cloudflare-Erkennungssysteme beim Web-Scraping mit Selenium zu umgehen.
