Unternehmen, die die Nase vorn behalten und intelligentere Entscheidungen treffen wollen, sind mehr denn je auf Webdaten angewiesen. Crawlbase macht dies mit leistungsstarken Tools für Web Scraping einfach. Eines seiner besten Produkte, das Crawlbase Crawlerhilft Ihnen, Daten asynchron zu erfassen, ohne auf die Antwort warten zu müssen. Sie können URLs an das Gerät senden, indem Sie Crawlbase Crawling API, und anstatt zu warten oder ständig auf Ergebnisse zu prüfen, Crawler sendet die Scraped-Daten automatisch per Webhook an Ihren Server – alles in Echtzeit. Das bedeutet schnellere Datenerfassung mit weniger Aufwand.

In diesem Blog werfen wir einen genaueren Blick auf die Crawlbase Crawler und wie die asynchrone Verarbeitung und Webhook-Integration das groß angelegte Web Scraping reibungslos und problemlos machen. Am Ende dieses Blogs werden Sie verstehen, wie Sie Crawlbase einrichten und verwenden Crawler effektiv.

Hier ist ein ausführliches Video zur Verwendung von Crawlbase Crawler:

Erstellen der Crawlbase Crawler

So verwenden Sie die Crawlermüssen Sie es zunächst über das Dashboard Ihres Crawlbase-Kontos erstellen. Je nach Bedarf können Sie zwei Arten von Crawler, TCP oder JavaScript. Verwenden Sie TCP Crawler um statische Seiten zu crawlen. Verwenden Sie das JS Crawler wenn der Inhalt, den Sie crawlen müssen, über JavaScript generiert wird, entweder weil es sich um eine mit JavaScript erstellte Seite handelt (React, Angular usw.) oder weil der Inhalt dynamisch im Browser generiert wird.

Für das Beispiel erstellen wir einen TCP-Crawler aus dem Dashboard.

Bild zeigt „Erstellen“ Crawler Seite ohne Optionen

So erstellen Sie ein Crawler, entweder müssen wir einen Webhook erstellen oder wir können Crawlbase verwenden Storage APIWenn Sie keinen eigenen Webhook erstellen und Daten speichern möchten, Crawler generiert sicher, Crawlbase bietet eine nahtlose Lösung durch seine Crawlbase Storage API.

Crawlbase Storage API ganz ohne irgendetwas tun oder drücken zu müssen.

Durch die Einrichtung Ihres Crawler Wenn Sie den Storage-Webhook-Endpunkt verwenden, können Sie Ihre gecrawlten Daten sicher und mit mehr Privatsphäre und Kontrolle speichern – ohne sich um Speicherlimits sorgen zu müssen. Wählen Sie dazu einfach die Option Crawlbase Storage beim Erstellen Ihres Crawler.

Wenn Sie Crawlbase Storage nicht verwenden möchten, können Sie Ihren eigenen Webhook-Endpunkt angeben, um die Daten direkt zu empfangen. Die folgenden Schritte erklären, wie Sie einen Webhook erstellen, der Crawlbase Storage erfüllt CrawlerAnforderungen mit Hilfe der Python Django-Framework.

1. Erstellen eines Webhooks

A Webhook ist ein HTTP-basierter Rückrufmechanismus, der es einem System ermöglicht, Echtzeitdaten an ein anderes zu senden, wenn ein bestimmtes Ereignis eintritt. Im Fall von Crawlbase Crawler Webhook sollte …

  1. Öffentlich von Crawlbase-Servern aus erreichbar sein
  2. Seien Sie bereit, POST-Anrufe zu empfangen und innerhalb von 200 ms zu antworten
  3. Antworten Sie innerhalb von 200 ms mit einem Statuscode 200, 201 oder 204 ohne Inhalt

Lassen Sie uns einen einfachen Webhook zum Empfangen von Antworten im Python Django-Framework erstellen. Stellen Sie sicher, dass Sie Python und Django installiert. Um einen einfachen Webhook-Empfänger mit Django in Python zu erstellen, folgen Sie diesen Schritten:

STEP 1

Erstellen Sie mit den folgenden Befehlen ein neues Django-Projekt und eine neue App:

1
2
3
4
5
6
7
8
9
10
11
# Befehl zum Erstellen des Projekts:

django-admin startprojekt webhook_projekt

# Gehen Sie über das Terminal zum Verzeichnis webhook_project:

cd Webhook-Projekt

# Webhook_App erstellen:

Python manage.py startapp webhook_app

STEP 2

Erstellen Sie im Verzeichnis webhook_app eine Datei views.py und definieren Sie eine Ansicht zum Empfangen der Webhook-Daten:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# webhook_app/views.py

von django.shortcuts importieren Ausbeute
von django.views.decorators.csrf importieren csrf_ausgenommen
von django.http importieren HttpResponse
importieren gzip

def Daten in Datei speichern(die Datenerfassung): # Angenommen, Sie möchten die Daten in einer Datei mit dem Namen „webhook_data.txt“ speichern.
mit XNUMXh geöffnet('webhook_data.txt', 'A') as Datei:
datei.schreiben(str(Daten) + '\n')

@csrf_exempt
def Webhook-Empfänger(Anforderung): # Fügen Sie die Anforderung zur asynchronen Verarbeitung zur Warteschlange hinzu
if Anfrage.Methode == 'POST':
versuchen:
dekomprimierte_Daten = gzip.decompress(Anfrage.Text)
ausgeschlossen OSError as e:
Rückkehr HttpResponse(„Fehler: Daten können nicht dekomprimiert werden“, Status=400)

# Konvertieren Sie die dekomprimierten Byte-Daten in einen String (oder zur weiteren Verarbeitung)
Datenzeichenfolge = dekomprimierte Daten.decode('lateinisch1')

# Daten in der Datei speichern
Daten in Datei speichern(Datenzeichenfolge)

# gib 204 an den Crawler zurück
Rückkehr HttpResponse(status=204)

Das webhook_receiver Funktion ist dekoriert mit @csrf_exempt um externen Diensten das Senden von Daten ohne CSRF-Schutz zu ermöglichen. Es versucht, Gzip-kodierte Daten aus dem Anfragetext zu dekomprimieren und dekodiert sie, wenn erfolgreich, (vermutlich HTML) in eine Zeichenfolge. Die Daten werden dann an eine Datei namens webhook_data.txt.

Während dieses Beispiel die Dinge vereinfacht, indem das extrahierte HTML in einer einzelnen Datei gespeichert wird, können Sie in der Praxis bei Bedarf alle Arten von Daten aus dem über den Webhook empfangenen HTML extrahieren und verarbeiten.

STEP 3

Konfigurieren Sie das URL-Routing. Bearbeiten Sie im Verzeichnis „webhook_project“ die Datei „urls.py“, um ein URL-Muster für den Webhook-Empfänger hinzuzufügen:

1
2
3
4
5
6
7
8
9
10
# webhook_project/urls.py

von django.contrib importieren Admin
von django.urls importieren Weg
von webhook_app.views importieren Webhook-Empfänger

URLmuster = [
Weg('Administrator/', admin.site.urls),
Weg(„Webhook/Crawlbase/“, Webhook-Empfänger, Name=„Webhook-Empfänger“),
]

STEP 4

Starten Sie den Django-Entwicklungsserver, um den Webhook-Empfänger zu testen:

1
2
3
# Befehl zum Starten des Servers
# Hinweis: Für Linux-Systeme mit Python Version 3 verwenden Sie python3 beim Start
python manage.py Runserver

Die App wird auf dem Localhost-Port 8000 ausgeführt.

Starten Sie den Django-Entwicklungsserver

Nachdem wir einen Webhook erstellt haben, müssen wir ihn als Nächstes im Internet öffentlich verfügbar machen.

Um dies für dieses Beispiel zu tun, verwenden wir Ngrok. Da unser Webhook auf dem lokalen Host mit Port 8000 läuft, müssen wir ngrok auf Port 8000 ausführen.

ngrok-Konsole

Nachdem wir ngrok auf Port 8000 ausgeführt haben, können wir sehen, dass ngrok eine öffentliche Weiterleitungs-URL bereitstellt, die wir zum Erstellen des Crawlers verwenden können. Mit der kostenlosen Version von ngrok läuft dieser Link nach 2 Stunden automatisch ab.

Crawlbase erstellen Crawler mit Webhook

Erstellen wir nun einen Crawler aus Dashboard.

Neues Crawler von Crawlbase Crawler Dashboard

Beginnen Sie damit, dass Sie Crawler einen eindeutigen Namen, wie in unserem Fall „Test-Crawler“, und geben Sie Ihre Webhook-URL in der Rückrufoption an. In diesem Beispiel ist die Webhook-URL eine öffentliche Ngrok-Weiterleitungs-URL, gefolgt von der Webhook-Routenadresse.

Übertragen von URLs auf die Crawler

Nachdem Sie nun den „Test-Crawler“ erstellt haben, besteht der nächste Schritt darin, die URLs zu pushen, die er crawlen soll. Dazu müssen Sie die Crawlbase verwenden. Crawling API, zusammen mit zwei zusätzlichen Parametern: crawler=YourCrawlerName und callback=true. Standardmäßig können Sie bis zu 30 URLs pro Sekunde an die CrawlerWenn Sie dieses Limit erhöhen müssen, können Sie eine Änderung beantragen, indem Sie Kontakt aufnehmen mit Crawlbase-Kundensupport.

Hier ist ein Beispiel in Python, das die Crawlbase Python-Bibliothek zum Weiterleiten von URLs an die Crawler.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# So installieren Sie die Crawlbase-Bibliothek
!pip installiere Crawlbase

# CrawlingAPI importieren
von Crawlbase importieren CrawlingAPI

# Initialisieren von CrawlingAPI mit Ihrem TCP-Token
api = CrawlingAPI({ 'Zeichen': 'IHR_CRAWLBASE_TOKEN' })

# Verwendung von zufälligen Amazon-URLs für das Beispiel
URLs = [
„https://www.amazon.com/AIRLITE-Microphone-Licensed-Microsoft-Accessories-x/dp/B08JR8HF2G“,
„https://www.amazon.com/Cabinet-Stainless-Kitchen-Drawer-Handles/dp/B07SPXKNXN“,
„https://www.amazon.com/Mkono-Decorative-Decoration-Organizer-Farmhouse/dp/B08292QMQR“,
]

für URL in URLs:
# Asynchrones Senden der Crawling-Anfrage mit angegebenen Optionen
Antwort = api.get(URL, Optionen={'Rückruf': "wahr", 'Raupe': „Test-Crawler“})

# Drucken des Inhalts des Antworttexts
drucken(Antwort['Körper'])

Nach dem Ausführen des Codes wird die Crawling API sendet alle URLs an die Crawler Warteschlange.

Beispielausgabe:

1
2
3
b'{"rid":"d756c32b0999b1c0507e364f"}'
b'{"rid":"455ee207f6907fbd6168ac1e"}'
b'{"rid":"e9eb6ce579dec207e8973615"}'

Für jede URL, die Sie an die Crawler Verwendung der Crawling APIerhalten Sie eine RID (Request ID). Mit dieser RID können Sie Ihre Anfrage verfolgen. Sobald die Crawler verarbeitet die HTML-Daten, werden diese automatisch an den Webhook gesendet, den Sie beim Erstellen des Crawler, wodurch der Prozess asynchron bleibt.

Das Crawler bietet APIs, mit denen Sie verschiedene Aktionen ausführen können, z. B. Suchen, Löschen, Anhalten, Fortsetzen usw. Weitere Informationen finden Sie unter HIER.

Hinweis: Die Gesamtseitenzahl aller Crawler Warteschlangen sind auf 1 Million begrenzt. Wenn die Warteschlangen insgesamt diese Grenze überschreiten, Crawler Push wird vorübergehend angehalten und Sie werden per E-Mail benachrichtigt. Der Push wird automatisch fortgesetzt, sobald die Anzahl der Seiten in der Warteschlange unter 1 Million fällt.

Empfangen von Daten vom Crawler

Nach dem Senden der URLs an die Crawler, Crawler crawlen die mit jeder URL verknüpfte Seite und pushen die Antwort mit gecrawltem HTML als Body zum Webhook.

1
2
3
4
5
6
7
8
9
10
Headers:
"Inhaltstyp" => "Text/Plain"
"Inhaltskodierung" => "gzip"
"Original-Status" => 200
"PC-Status" => 200
"loswerden" => „Die RID, die Sie im Push-Call erhalten haben“
"URL" => „Die URL, die gecrawlt wurde“

Korpus:
Das HTML der Seite

Das Standardformat der Antwort ist HTML. Wenn Sie eine Antwort im JSON-Format erhalten möchten, können Sie einen Abfrageparameter „format=json“ übergeben mit Crawling API beim Übertragen von Daten an die CrawlerDie JSON-Antwort sieht folgendermaßen aus

1
2
3
4
5
6
7
8
9
10
11
12
Headers:
"Inhaltstyp" => "gzip/json"
"Inhaltskodierung" => "gzip"

Korpus:
{
"pc_status": 200,
"ursprünglicher_Status": 200,
"loswerden": „Die RID, die Sie im Push-Call erhalten haben“,
"URL": „Die URL, die gecrawlt wurde“,
"Karosserie": „Das HTML der Seite“
}

Da wir nur 3 URLs an die Crawler im vorherigen Beispiel erhielten wir 3 Anfragen von Crawler auf unserem Webhook.

Empfangen von Daten von Crawler

Wie in der webhook_receiver Funktion haben wir codiert, um den Anforderungstext in einem .txt Datei. Wir können den gesamten HTML-Inhalt in dieser Datei wie folgt sehen.

Gescrapte HTML-Daten

Sobald Sie das HTML an Ihrem Webhook haben, können Sie je nach Bedarf alles daraus extrahieren.

Wichtiger Hinweis: Sie können die Webhook-URL für Ihre Crawler jederzeit über Ihr Crawlbase-Dashboard. Wenn die Crawler sendet eine Antwort an Ihren Webhook, aber Ihr Server gibt keine erfolgreiche Antwort zurück, Crawler versucht automatisch erneut, die Seite zu crawlen und die Zustellung erneut zu versuchen. Diese Wiederholungsversuche werden als erfolgreiche Anfragen gezählt und in Rechnung gestellt. Wenn Ihr Webhook ausfällt, wird außerdem der Crawlbase-Überwachungsbot erkennt es und pausiert die Crawlerdem „Vermischten Geschmack“. Seine Crawler wird fortgesetzt, sobald der Webhook wieder online ist. Für Änderungen an diesen Einstellungen können Sie sich an Technischer Support von Crawlbase.

Für ein umfassenderes Verständnis siehe Crawlbase Crawler Dokumentation.

Erweiterte Callback-Funktionalität mit benutzerdefinierten Headern

Zusätzlich zum Standard-Callback-Mechanismus bietet Crawlbase eine optionale Funktion, mit der Sie über den Parameter „callback_headers“ benutzerdefinierte Header empfangen können. Diese Erweiterung ermöglicht es Ihnen, zusätzliche Daten zu Identifikationszwecken weiterzugeben und so eine personalisiertere und effizientere Integration in Ihre Systeme zu ermöglichen.

Benutzerdefiniertes Header-Format:

Das Format für benutzerdefinierte Header ist wie folgt:

HEADER-NAME:VALUE|HEADER-NAME2:VALUE2|and-so-on

Für eine reibungslose Datenübertragung und -interpretation ist die Gewährleistung einer korrekten Kodierung von entscheidender Bedeutung.

Anwendungsbeispiel

Für diese Header- und Wertepaare { „id“: 123, Typ: „etc“ }

&callback_headers=id%3A123%7Ctype%3Aetc

Empfangen von Kundenkopfzeilen

Crawler sendet alle benutzerdefinierten Header im Header-Abschnitt der Antwort. Sie können zusammen mit Ihren gecrawlten Daten problemlos darauf zugreifen.

1
2
3
4
5
6
7
8
9
10
11
12
13
Headers:
"Inhaltstyp" => "gzip/json"
"Inhaltskodierung" => "gzip"
"Ich würde" => 123
"Typ" => "usw"
Korpus:
{
"pc_status": 200,
"ursprünglicher_Status": 200,
"loswerden": „Die RID, die Sie im Push-Call erhalten haben“,
"URL": „Die URL, die gecrawlt wurde“,
"Karosserie": „Das HTML der Seite“
}

Mit diesem Upgrade haben Sie jetzt mehr Flexibilität und Kontrolle über die Informationen, die Sie durch Rückrufe erhalten. Durch die Nutzung benutzerdefinierter Header können Sie die Rückrufdaten an Ihre spezifischen Anforderungen anpassen, sodass die Anpassung unserer Dienste an Ihre individuellen Bedürfnisse einfacher denn je ist.

Fazit

Crawlbase Crawler bietet eine robuste und effiziente Lösung für Web-Crawling und Data Scraping. Mit seinen leistungsstarken asynchronen Funktionen hilft Crawlbase Unternehmen dabei, schnell große Datenmengen zu sammeln, Echtzeit-Updates zu erhalten und den Datenextraktionsprozess reibungslos zu verwalten. Crawlbase Crawler ist ein beliebtes Tool für Unternehmen, die große Datenmengen extrahieren müssen und das ihnen hilft, in der schnelllebigen digitalen Welt von heute die Nase vorn zu behalten.

Das heißt, während Crawlbase Crawler ist ein leistungsstarkes Tool, dessen verantwortungsvoller Einsatz unerlässlich ist. Stellen Sie immer sicher, dass Sie die Nutzungsbedingungen der Website einhalten, ethische Scraping-Praktiken befolgen und die Richtlinien für eine verantwortungsvolle Datenextraktion respektieren. Auf diese Weise können wir alle zu einem gesunden und nachhaltigen Web-Ökosystem beitragen. Lassen Sie uns das Beste aus dem Web machen – verantwortungsvoll und effektiv.

Häufig gestellte Fragen

F: Welche Vorteile bietet die Verwendung von Crawlbase? Crawler?

  1. Wirkungsgrad: Das CrawlerDie asynchronen Funktionen von ermöglichen eine schnellere Datenextraktion von Websites und sparen so wertvolle Zeit und Ressourcen.
  2. Benutzerfreundlich: Mit seinem benutzerfreundlichen Design ist das Crawler vereinfacht das Pushen von URLs und den Empfang gecrawlter Daten über Webhooks.
  3. Skalierbarkeit: Das Crawler kann große Datenmengen effizient verarbeiten und ist daher ideal für das Scraping umfangreicher Websites und die Verarbeitung umfangreicher Datensätze.
  4. Echtzeit-Updates: Durch die Einstellung der Scrollzeit-Variable können Sie steuern, wann die Crawler sendet die gescrapte Website zurück und ermöglicht Echtzeitzugriff auf die aktuellsten Daten.
  5. Datengesteuerte Entscheidungsfindung: Das Crawler gibt Benutzern wertvolle Einblicke in Webdaten und unterstützt sie so bei der datengesteuerten Entscheidungsfindung und der Erzielung von Wettbewerbsvorteilen.

F: Wie funktioniert Crawlbase Crawler Web Scraping asynchron machen?

Crawlbase Crawler macht Web Scraping asynchron, indem es Benutzern ermöglicht, URLs an die Crawler und weiterarbeiten, ohne auf den Abschluss des Scraping-Prozesses warten zu müssen. Wenn Sie URLs übermitteln, Crawler fügt sie einer Warteschlange hinzu und verarbeitet sie im Hintergrund. Es gibt eine Request-ID (rid) anstelle der Scraped-Daten zurück, sodass Sie den Fortschritt verfolgen können, während die Crawler funktioniert. Sobald die Daten bereit sind, werden sie automatisch an Ihren angegebenen Webhook gesendet, sodass Sie die Ergebnisse erhalten, ohne auf den Abschluss des Scrapings warten zu müssen. Dieser asynchrone Ansatz beschleunigt den Prozess und verbessert die Effizienz.

F: Muss ich Python verwenden, um Crawlbase zu verwenden? Crawler?

Nein, Sie müssen nicht ausschließlich Python verwenden, um die Crawlbase zu nutzen Crawlerdem „Vermischten Geschmack“. Seine Crawler bietet mehrere Bibliotheken für verschiedene Programmiersprachen, sodass Benutzer mit ihnen in ihrer bevorzugten Sprache interagieren können. Egal, ob Sie mit Python, JavaScript, Java, Ruby oder anderen Programmiersprachen vertraut sind, Crawlbase bietet alles für Sie. Darüber hinaus bietet Crawlbase APIs, mit denen Benutzer auf die Crawlers-Funktionen, ohne auf bestimmte Bibliotheken angewiesen zu sein, und ist damit für eine breite Palette von Entwicklern mit unterschiedlichen Sprachpräferenzen und technischen Hintergründen zugänglich. Diese Flexibilität stellt sicher, dass Sie die Crawler in Ihre Projekte und Arbeitsabläufe integrieren und dabei die Sprache verwenden, die Ihren Anforderungen am besten entspricht.