In diesem Tutorial lernen Sie das Web-Scraping in Laravel kennen und erfahren:
- Warum Laravel eine großartige Technologie für Web-Scraping ist
- Was die besten Laravel-Scraping-Bibliotheken sind
- Wie Sie eine Laravel-Web-Scraping-API von Grund auf neu erstellen
Lassen Sie uns loslegen!
Ist es möglich, Web-Scraping in Laravel durchzuführen?
TL;DR: Ja, Laravel ist eine geeignete Technologie für Web-Scraping.
Laravel ist ein leistungsstarkes PHP-Framework, das für seine elegante und ausdrucksstarke Syntax bekannt ist. Insbesondere ermöglicht es Ihnen, APIs zu erstellen, um Daten aus dem Web im Handumdrehen zu scrapen. Dies ist dank der Unterstützung vieler Scraping-Bibliotheken möglich, die den Prozess des Abrufens von Daten aus Seiten vereinfachen. Weitere Informationen finden Sie in unserem Artikel über Web-Scraping in PHP.
Laravel ist aufgrund seiner Skalierbarkeit, der einfachen Integration mit anderen Tools und der umfangreichen Community-Unterstützung eine ausgezeichnete Wahl für Web-Scraping. Seine starke MVC-Architektur hilft Ihnen dabei, Ihre Scraping-Logik gut organisiert und wartbar zu halten. Das ist besonders nützlich, wenn Sie komplexe oder groß angelegte Scraping-Projekte erstellen.
Die besten Laravel-Web-Scraping-Bibliotheken
Dies sind die besten Bibliotheken für das Web-Scraping mit Laravel:
- BrowserKit: Als Teil des Symfony-Frameworks simuliert es die API eines Webbrowsers für die Interaktion mit HTML-Dokumenten. Es stützt sich auf
DomCrawler, um HTML-Dokumente zu navigieren und zu scrapen. Diese Bibliothek ist ideal für die Extraktion von Daten aus statischen Seiten in PHP. - HttpClient: Eine Symfony-Komponente zum Senden von HTTP-Anfragen. Sie lässt sich nahtlos in
BrowserKitintegrieren. - Guzzle: Ein robuster HTTP-Client zum Senden von Webanfragen an Server und zur effizienten Verarbeitung von Antworten. Er ist hilfreich für das Abrufen der mit Webseiten verbundenen HTML-Dokumente. Erfahren Sie, wie Sie einen Proxy in Guzzle einrichten.
- Panther: Eine Symfony-Komponente, die einen Headless-Browser für das Web-Scraping bereitstellt. Damit können Sie mit dynamischen Websites interagieren, die JavaScript für die Darstellung oder Interaktion benötigen.
Voraussetzungen
Um diesem Tutorial zum Web-Scraping in Laravel folgen zu können, müssen Sie die folgenden Voraussetzungen erfüllen:
Eine IDE zum Programmieren in PHP wird ebenfalls empfohlen. Visual Studio Code mit der PHP-Erweiterung oder WebStorm sind beide hervorragende Lösungen.
So erstellen Sie eine Web-Scraping-API in Laravel
In diesem Schritt-für-Schritt-Abschnitt erfahren Sie, wie Sie eine Laravel-Web-Scraping-API erstellen. Die Zielseite ist die Quotes-Scraping-Sandbox-Seite, und der Scraping-Endpunkt wird:
- Wählen Sie die HTML-Elemente für Zitate auf der Seite aus.
- Extrahiert Daten aus diesen
- Gibt die gescrapten Daten in JSON zurück
So sieht die Zielwebsite aus:

Befolgen Sie die nachstehenden Anweisungen und lernen Sie, wie Sie Web-Scraping in Laravel durchführen!
Schritt 1: Richten Sie ein Laravel-Projekt ein
Öffnen Sie das Terminal. Führen Sie dann den folgenden Composer-Befehl aus, um Ihre Laravel-Web-Scraping-Anwendung zu initialisieren:
composer create-project laravel/laravel laravel-scraper
Der Ordner „lavaral-scraper“ enthält nun ein leeres Laravel-Projekt. Laden Sie es in Ihre bevorzugte PHP-IDE.
Dies ist die Dateistruktur Ihres aktuellen Backends:

Großartig! Sie haben nun ein Laravel-Projekt eingerichtet.
Schritt 2: Initialisieren Sie Ihre Scraping-API
Führen Sie den folgenden Artisan-Befehl im Projektverzeichnis aus, um einen neuen Laravel-Controller hinzuzufügen:
php artisan make:controller HelloWorldController
Dadurch wird die folgende Datei „ScrapingController.php” im Verzeichnis „/app/Http/Controllers” erstellt:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class ScrapingController extends Controller
{
//
}
Fügen Sie in der Datei „ScrapingController ” die folgende Methode „scrapeQuotes() ” hinzu:
public function scrapeQuotes(): JsonResponse
{
// Scraping-Logik...
return response()->json('Hello, World!');
}
Derzeit gibt die Methode eine Platzhalter-JSON-Meldung „Hello, World!” zurück. In Kürze wird sie einige Scraping-Logiken in Laravel enthalten.
Vergessen Sie nicht, den folgenden Import hinzuzufügen:
use IlluminateHttpJsonResponse;
Ordnen Sie die Methode scrapeQuotes() einem dedizierten Endpunkt zu, indem Sie die folgenden Zeilen zu routes/api.php hinzufügen:
use AppHttpControllersScrapingController;
Route::get('/v1/scraping/scrape-quotes', [ScrapingController::class, 'scrapeQuotes']);
Großartig! Jetzt ist es an der Zeit zu überprüfen, ob die Laravel-Scraping-API wie gewünscht funktioniert. Beachten Sie, dass Laravel-APIs unter dem Pfad /api verfügbar sind. Der vollständige API-Endpunkt lautet also /api/v1/scraping/scrape-quotes.
Starten Sie Ihre Laravel-Anwendung mit dem folgenden Befehl:
php artisan serve
Ihr Server sollte nun lokal auf Port 8000 lauschen.
Verwenden Sie cURL, um eine GET -Anfrage an den Endpunkt /api/v1/scraping/scrape-quotes zu senden:
curl -X GET 'http://localhost:8000/api/v1/scraping/scrape-quotes'
Hinweis: Unter Windows ersetzen Sie curl durch curl.exe. Weitere Informationen finden Sie in unserem Leitfaden zu cURL für Web-Scraping.
Sie sollten die folgende Antwort erhalten:
„Hello, World!“
Fantastisch! Die Beispiel-Scraping-API funktioniert einwandfrei. Jetzt ist es an der Zeit, mit Laravel eine Scraping-Logik zu definieren.
Schritt 3: Installieren Sie die Scraping-Bibliotheken
Bevor Sie Pakete installieren, müssen Sie festlegen, welche Laravel-Web-Scraping-Bibliotheken Ihren Anforderungen am besten entsprechen. Öffnen Sie dazu die Zielwebsite in Ihrem Browser. Klicken Sie mit der rechten Maustaste auf die Seite und wählen Sie „Untersuchen“, um die Entwicklertools zu öffnen. Wechseln Sie dann zur Registerkarte „Netzwerk“, laden Sie die Seite neu und rufen Sie den Abschnitt „Fetch/XHR“ auf:

Wie Sie sehen können, führt die Webseite keine AJAX-Anfragen durch. Das bedeutet, dass sie keine Daten dynamisch auf der Client-Seite lädt. Es handelt sich also um eine statische Seite, bei der alle Daten in den HTML-Dokumenten eingebettet sind.
Da die Seite statisch ist, benötigen Sie keine Headless-Browser-Bibliothek, um sie zu scrapen. Sie könnten zwar weiterhin ein Browser-Automatisierungstool verwenden, dies würde jedoch nur unnötigen Overhead verursachen. Der empfohlene Ansatz ist die Verwendung der Komponenten BrowserKit und HttpClient von Symfony.
Fügen Sie die Komponenten symfony/browser-kit und symfony/http-client mit folgendem Befehl zu den Abhängigkeiten Ihres Projekts hinzu:
composer require symfony/browser-kit symfony/http-client
Gut gemacht! Sie haben nun alles, was Sie für das Scraping von Daten in Laravel benötigen.
Schritt 4: Laden Sie die Zielseite herunter
Importieren Sie BrowserKit und HttpClient in ScrapingController:
use SymfonyComponentBrowserKitHttpBrowser;
use SymfonyComponentHttpClientHttpClient;
Initialisieren Sie in scrapeQuotes() ein neues HttpBrowser -Objekt:
$browser = new HttpBrowser(HttpClient::create());
Dadurch können Sie HTTP-Anfragen stellen, indem Sie das Verhalten eines Browsers simulieren. Beachten Sie jedoch, dass die Anfragen nicht in einem echten Browser ausgeführt werden. HttpBrowser bietet lediglich ähnliche Funktionen wie ein Browser, z. B. die Verwaltung von Cookies und Sitzungen.
Verwenden Sie die Methode request(), um eine HTTP-GET-Anfrage an die URL der Zielseite zu senden:
$crawler = $browser->request('GET', 'https://quotes.toscrape.com/');
Das Ergebnis ist ein Crawler-Objekt, das das vom Server zurückgegebene HTML-Dokument automatisch durch Parsing analysiert. Diese Klasse bietet auch Funktionen zur Knotenauswahl und Datenextraktion.
Sie können überprüfen, ob die oben beschriebene Logik funktioniert, indem Sie den HTML-Code der Seite aus dem Crawler extrahieren:
$html = $crawler->outerHtml();
Lassen Sie Ihre API zum Testen diese Daten zurückgeben.
Ihre Funktion scrapeQuotes() sieht nun wie folgt aus:
public function scrapeQuotes(): JsonResponse
{
// Initialisieren Sie einen browserähnlichen HTTP-Client.
$browser = new HttpBrowser(HttpClient::create());
// Laden Sie den HTML-Code der Zielseite herunter und analysieren Sie ihn.
$crawler = $browser->request('GET', 'https://quotes.toscrape.com/');
// den äußeren HTML-Code der Seite abrufen und zurückgeben
$html = $crawler->outerHtml();
return response()->json($html);
}
Erstaunlich! Ihre API gibt nun Folgendes zurück:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Quotes to Scrape</title>
<link rel="stylesheet" href="/static/bootstrap.min.css">
<link rel="stylesheet" href="/static/main.css">
</head>
<!-- der Kürze halber ausgelassen ... -->
Schritt 5: Überprüfen Sie den Seiteninhalt
Um die Logik für die Datenextraktion zu definieren, muss die HTML-Struktur der Zielseite untersucht werden.
Öffnen Sie also „Quotes To Scrape ” in Ihrem Browser. Klicken Sie dann mit der rechten Maustaste auf ein HTML-Element für ein Zitat und wählen Sie die Option „Untersuchen”. Erweitern Sie in den DevTools Ihres Browsers den HTML-Code und beginnen Sie mit der Untersuchung:

Beachten Sie hier, dass jede Zitatkarte ein .quote -HTML-Knoten ist, der Folgendes enthält:
- Ein
.text-Element mit dem Text des Zitats - Einen
.author-Knoten mit dem Namen des Autors - Viele
.tag-Elemente, die jeweils ein einzelnes Tag anzeigen
Mit den oben genannten CSS-Selektoren haben Sie alles, was Sie für das Web-Scraping in Laravel benötigen. Verwenden Sie diese Selektoren, um die gewünschten DOM-Elemente anzusprechen und in den nächsten Schritten Daten daraus zu extrahieren!
Schritt 6: Bereiten Sie sich auf das Web-Scraping vor
Da die Zielseite mehrere Zitate enthält, erstellen Sie eine Datenstruktur, in der die gescrapten Daten gespeichert werden können. Ein Array ist hierfür ideal:
quotes = []
Verwenden Sie dann die Methode filter() aus der Crawler -Klasse, um alle Zitat-Elemente auszuwählen:
$quote_html_elements = $crawler->filter('.quote');
Dadurch werden alle DOM-Knoten auf der Seite zurückgegeben, die dem angegebenen CSS-Selektor .quote entsprechen.
Als Nächstes durchlaufen Sie diese und bereiten sich darauf vor, die Datenextraktionslogik auf jedes einzelne Element anzuwenden:
foreach ($quote_html_elements as $quote_html_element) {
// Erstellen Sie einen neuen Zitat-Crawler.
$quote_crawler = new Crawler($quote_html_element);
// Scraping-Logik...
}
Beachten Sie, dass die von filter() zurückgegebenen DOMNode -Objekte keine Methoden für die Knotenauswahl bereitstellen. Sie müssen daher eine lokale Crawler -Instanz erstellen, die auf Ihr spezifisches HTML-Zitat-Element beschränkt ist.
Damit der obige Code funktioniert, fügen Sie den folgenden Import hinzu:
use SymfonyComponentDomCrawlerCrawler;
Sie müssen das DomCrawler-Paket nicht manuell installieren. Das liegt daran, dass es eine direkte Abhängigkeit der BrowserKit-Komponente ist.
Großartig! Sie sind Ihrem Ziel des Laravel-Web-Scrapings einen Schritt näher gekommen.
Schritt 7: Implementieren Sie das Data Scraping
Innerhalb der foreach -Schleife:
- Extrahieren Sie die gewünschten Daten aus den Elementen
.text,.authorund.tag - Füllen Sie ein neues
$quote-Objekt mit diesen Daten - Fügen Sie das neue
$quote-Objekt zu$quoteshinzu
Wählen Sie zunächst das Element .text innerhalb des HTML-Elements quote aus. Verwenden Sie dann die Methode text(), um den inneren Text daraus zu extrahieren:
$text_html_element = $quote_crawler->filter('.text');
$raw_text = $text_html_element->text();
Beachten Sie, dass jedes Zitat von den Sonderzeichen u201c und u201d umschlossen ist. Sie können diese mit der PHP-Funktion str_replace() wie folgt entfernen:
$text = str_replace(["u{201c}", "u{201d}"], '', $raw_text);
Auf ähnliche Weise können Sie die Autoreninformationen mit folgendem Befehl extrahieren:
$author_html_element = $quote_crawler->filter('.author');
$author = $author_html_element->text();
Das Extrahieren der Tags kann etwas schwieriger sein. Da ein einzelnes Zitat mehrere Tags haben kann, müssen Sie ein Array definieren und jedes Tag einzeln extrahieren:
$tag_html_elements = $quote_crawler->filter('.tag');
$tags = [];
foreach ($tag_html_elements as $tag_html_element) {
$tag = $tag_html_element->textContent;
$tags[] = $tag;
}
Beachten Sie, dass die von filter() zurückgegebenen DOMNode-Elemente die text() -Methode nicht offenlegen. Stattdessen bieten sie das textContent- Attribut.
So sieht die gesamte Laravel-Daten-Scraping-Logik aus:
// Erstellen eines neuen Zitat-Crawlers
$quote_crawler = new Crawler($quote_html_element);
// Ausführen der Datenextraktionslogik
$text_html_element = $quote_crawler->filter('.text');
$raw_text = $text_html_element->text();
// Sonderzeichen aus den Rohtextinformationen entfernen
$text = str_replace(["u{201c}", "u{201d}"], '', $raw_text);
$author_html_element = $quote_crawler->filter('.author');
$author = $author_html_element->text();
$tag_html_elements = $quote_crawler->filter('.tag');
$tags = [];
foreach ($tag_html_elements as $tag_html_element) {
$tag = $tag_html_element->textContent;
$tags[] = $tag;
}
Los geht’s! Sie sind kurz vor dem Ziel.
Schritt 8: Die gescrapten Daten zurückgeben
Erstellen Sie ein $quote -Objekt mit den gescrapten Daten und fügen Sie es zu $quotes hinzu:
$quote = [
'text' => $text,
'author' => $author,
'tags' => $tags
];
$quotes[] = $quote;
Aktualisieren Sie als Nächstes die API-Antwortdaten mit der Liste $quotes:
return response()->json(['quotes' => $quotes]);
Am Ende der Scraping-Schleife enthält $quotes:
array(10) {
[0]=>
array(3) {
["text"]=>
string(113) "Die Welt, wie wir sie geschaffen haben, ist ein Produkt unseres Denkens. Sie kann nicht verändert werden, ohne unser Denken zu verändern."
["author"]=>
string(15) "Albert Einstein"
["tags"]=>
array(4) {
[0]=>
string(6) "change"
[1]=>
string(13) "deep-thoughts"
[2]=>
string(8) "thinking"
[3]=>
string(5) "world"
}
}
// der Kürze halber ausgelassen...
[9]=>
array(3) {
["text"]=>
string(48) "Ein Tag ohne Sonnenschein ist wie, na ja, die Nacht."
["author"]=>
string(12) "Steve Martin"
["tags"]=>
array(3) {
[0]=>
string(5) "humor"
[1]=>
string(7) "obvious"
[2]=>
string(6) "simile"
}
}
}
Super! Diese Daten werden dann in JSON serialisiert und von der Laravel-Scraping-API zurückgegeben.
Schritt 9: Alles zusammenfügen
Hier ist der endgültige Code der Datei „ScrapingController” in Laravel:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateHttpJsonResponse;
use SymfonyComponentBrowserKitHttpBrowser;
use SymfonyComponentHttpClientHttpClient;
use SymfonyComponentDomCrawlerCrawler;
class ScrapingController extends Controller
{
public function scrapeQuotes(): JsonResponse
{
// Initialisieren eines browserähnlichen HTTP-Clients
$browser = new HttpBrowser(HttpClient::create());
// Herunterladen und Parsing des HTML-Codes der Zielseite
$crawler = $browser->request('GET', 'https://quotes.toscrape.com/');
// Speicherort für die gescrapten Daten
$quotes = [];
// alle HTML-Elemente mit Zitaten auf der Seite auswählen
$quote_html_elements = $crawler->filter('.quote');
// jedes HTML-Element mit Zitaten durchlaufen und
// die Scraping-Logik anwenden
foreach ($quote_html_elements as $quote_html_element) {
// neuen Zitat-Crawler erstellen
$quote_crawler = new Crawler($quote_html_element);
// Logik zur Datenextraktion ausführen
$text_html_element = $quote_crawler->filter('.text');
$raw_text = $text_html_element->text();
// Sonderzeichen aus den Rohtextinformationen entfernen
$text = str_replace(["u{201c}", "u{201d}"], '', $raw_text);
$author_html_element = $quote_crawler->filter('.author');
$author = $author_html_element->text();
$tag_html_elements = $quote_crawler->filter('.tag');
$tags = [];
foreach ($tag_html_elements as $tag_html_element) {
$tag = $tag_html_element->textContent;
$tags[] = $tag;
}
// Neues Zitat-Objekt erstellen
// mit den gescrapten Daten
$quote = [
'text' => $text,
'author' => $author,
'tags' => $tags
];
// Füge das Zitat-Objekt zum Zitate-Array hinzu
$quotes[] = $quote;
}
var_dump($quotes);
return response()->json(['quotes' => $quotes]);
}
}
Zeit zum Testen!
Starten Sie Ihren Laravel-Server:
php artisan serve
Senden Sie dann eine GET-Anfrage an den Endpunkt /api/v1/scraping/scrape-quotes:
curl -X GET 'http://localhost:8000/api/v1/scraping/scrape-quotes'
Sie erhalten das folgende Ergebnis:
{
"quotes": [
{
"text": "Die Welt, wie wir sie geschaffen haben, ist ein Produkt unseres Denkens. Sie kann nicht verändert werden, ohne unser Denken zu verändern.",
"author": "Albert Einstein",
"tags": [
"change",
"deep-thoughts",
"thinking",
"world"
]
},
// der Kürze halber ausgelassen...
{
"text": "Ein Tag ohne Sonnenschein ist wie, na ja, die Nacht.",
"author": "Steve Martin",
"tags": [
"humor",
"obvious",
"simile"
]
}
]
}
Et voilà! Mit weniger als 100 Zeilen Code haben Sie gerade Web-Scraping in Laravel durchgeführt.
Nächste Schritte
Die API, die Sie hier erstellt haben, ist nur ein einfaches Beispiel dafür, was Sie mit Laravel im Bereich Web-Scraping erreichen können. Um Ihr Projekt auf die nächste Stufe zu heben, sollten Sie die folgenden Verbesserungen in Betracht ziehen:
- Implementieren Sie Web-Crawling: Die Zielwebsite enthält mehrere Zitate, die über mehrere Seiten verteilt sind. Dies ist ein häufiges Szenario, das Web-Crawling erfordert, um alle Daten abzurufen. Lesen Sie unseren Artikel über die Definition eines Web-Crawlers.
- Planen Sie Ihre Scraping-Aufgabe: Fügen Sie einen Scheduler hinzu, um Ihre API in regelmäßigen Abständen aufzurufen, die Daten in einer Datenbank zu speichern und sicherzustellen, dass Sie immer über aktuelle Daten verfügen.
- Integrieren Sie einen Proxy: Wenn Sie mehrere Anfragen von derselben IP-Adresse aus stellen, kann dies dazu führen, dass Sie durch Anti-Scraping-Maßnahmen blockiert werden. Um dies zu vermeiden, sollten Sie die Integration von Residential-Proxys in Ihren PHP-Scraper in Betracht ziehen.
Halten Sie Ihren Laravel-Web-Scraping-Vorgang ethisch und respektvoll
Web-Scraping ist eine effektive Methode, um wertvolle Daten für verschiedene Zwecke zu sammeln. Das Ziel ist jedoch, Daten verantwortungsbewusst abzurufen und der Zielwebsite keinen Schaden zuzufügen. Daher ist es wichtig, beim Scraping die richtigen Vorsichtsmaßnahmen zu treffen.
Befolgen Sie diese Tipps, um ein verantwortungsbewusstes Kotlin-Web-Scraping sicherzustellen:
- Überprüfen und befolgen Sie die Nutzungsbedingungen der Website: Bevor Sie eine Website scrapen, lesen Sie deren Nutzungsbedingungen. Diese enthalten oft Informationen zum Urheberrecht, zu geistigen Eigentumsrechten und Richtlinien für die Verwendung ihrer Daten.
- Beachten Sie die robots.txt-Datei: Die robots.txt-Datei einer Website definiert die Regeln, nach denen automatisierte Crawler auf ihre Seiten zugreifen dürfen. Halten Sie sich an diese Richtlinien, um ethische Praktiken zu wahren. Weitere Informationen finden Sie in unserem Leitfaden zu robots.txt für Web-Scraping.
- Konzentrieren Sie sich nur auf öffentlich zugängliche Informationen: Konzentrieren Sie sich auf Daten, die öffentlich zugänglich sind. Vermeiden Sie das Scraping von Seiten, die durch Anmeldedaten oder andere Formen der Autorisierung geschützt sind. Das Scraping privater oder sensibler Daten ohne entsprechende Berechtigung ist unethisch und kann rechtliche Konsequenzen nach sich ziehen.
- Begrenzen Sie die Häufigkeit Ihrer Anfragen: Zu viele Anfragen in kurzer Zeit können den Server überlasten und die Leistung der Website für alle Benutzer beeinträchtigen. Dies kann auch zu Maßnahmen zur Begrenzung der Anfragefrequenz führen und dazu, dass Sie gesperrt werden. Vermeiden Sie eine Überlastung des Zielservers, indem Sie zufällige Verzögerungen zwischen Ihren Anfragen einfügen.
- Verlassen Sie sich auf vertrauenswürdige und aktuelle Scraping-Tools: Bevorzugen Sie seriöse Anbieter und entscheiden Sie sich für Tools, die gut gepflegt und regelmäßig aktualisiert werden. So stellen Sie sicher, dass sie den neuesten ethischen Laravel-Scraping-Praktiken entsprechen. Wenn Sie sich nicht sicher sind, lesen Sie unseren Artikel darüber, wie Sie den besten Web-Scraping-Dienst auswählen.
Fazit
In diesem Leitfaden haben Sie gesehen, warum Laravel ein gutes Framework für die Erstellung von Web-Scraping-APIs ist. Außerdem hatten Sie die Möglichkeit, einige der besten Scraping-Bibliotheken kennenzulernen. Anschließend haben Sie gelernt, wie Sie eine Laravel-Web-Scraping-API erstellen, die Daten aus einer Zielseite im Handumdrehen extrahiert. Wie Sie gesehen haben, ist Web-Scraping mit Laravel einfach und erfordert nur wenige Zeilen Code.
Das Problem ist, dass die meisten Websites ihre Daten mit Anti-Bot- und Anti-Scraping-Lösungen schützen. Diese Technologien können Ihre automatisierten Anfragen erkennen und blockieren. Glücklicherweise bietet Bright Data eine Reihe von Lösungen, die das Scraping vereinfachen:
- Scraping-Browser: Ein cloudbasierter, steuerbarer Browser, der JavaScript-Rendering-Funktionen bietet und gleichzeitig CAPTCHAs, Browser-Fingerprinting, automatische Wiederholungsversuche und vieles mehr für Sie übernimmt. Er lässt sich in die gängigsten Automatisierungs-Browser-Bibliotheken wie Playwright und Puppeteer integrieren.
- Web Unlocker: Eine Entsperr-API, die nahtlos den sauberen HTML-Code jeder Seite zurückgeben kann und dabei alle Anti-Scraping-Maßnahmen umgeht.
- Web-Scraping-APIs: Endpunkte für den programmatischen Zugriff auf strukturierte Webdaten aus Dutzenden beliebter Domains.
Sie möchten sich nicht mit Web-Scraping beschäftigen, sind aber dennoch an Online-Daten interessiert? Entdecken Sie die gebrauchsfertigen Datensätze von Bright Data!
Melden Sie sich jetzt an und testen Sie gratis.