Heim > Artikel > Backend-Entwicklung > So überwachen Sie Webcrawler in Echtzeit mit PHP und Elasticsearch
So verwenden Sie PHP und Elasticsearch, um Webcrawler in Echtzeit zu überwachen
Einführung:
Webcrawler können uns dabei helfen, große Datenmengen aus dem Internet zu erhalten. Wenn das Crawler-Programm jedoch über einen längeren Zeitraum ausgeführt wird, müssen wir häufig seinen Ausführungsstatus und seine Ergebnisse in Echtzeit überwachen. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP und Elasticsearch die Echtzeitüberwachung von Webcrawlern implementieren, damit wir die Crawling-Situation rechtzeitig verstehen können.
Abhängigkeiten installieren
Wir verwenden Composer, um die PHP-Elasticsearch-Clientbibliothek zu installieren. Führen Sie den folgenden Befehl aus:
composer require elasticsearch/elasticsearch
Erstellen Sie eine Elasticsearch-Verbindung.
Erstellen Sie eine Elasticsearch-Verbindung mit dem folgenden Code:
require 'vendor/autoload.php'; use ElasticsearchClientBuilder; $client = ClientBuilder::create() ->setHosts(['localhost:9200']) ->build();
Im obigen Code haben wir Einrichten von Elasticsearch Der Host und der Port können entsprechend Ihrer tatsächlichen Situation geändert werden.
Crawler-Überwachungsindex erstellen
In Elasticsearch müssen wir zunächst einen Index erstellen, um Crawler-Überwachungsdaten zu speichern. Führen Sie den folgenden Code aus, um einen Index zu erstellen:
$params = [ 'index' => 'spider_monitor', 'body' => [ 'mappings' => [ 'properties' => [ 'url' => ['type' => 'text'], 'status' => ['type' => 'keyword'], 'timestamp' => ['type' => 'date'] ] ] ] ]; $response = $client->indices()->create($params);
Crawler-Status überwachen
Im Crawler-Programm können wir seinen Status in Echtzeit überwachen, indem wir Daten in Elasticsearch einfügen. Hier ist ein Beispielcode:
$url = "http://example.com"; $status = "running"; $timestamp = date('Y-m-d H:i:s'); $params = [ 'index' => 'spider_monitor', 'body' => [ 'url' => $url, 'status' => $status, 'timestamp' => $timestamp ] ]; $response = $client->index($params);
Im obigen Code fügen wir die URL des Crawlers, den Ausführungsstatus und den aktuellen Zeitstempel als Dokumente in den Index ein.
Crawler-Status abfragen
Mit der Suchfunktion von Elasticsearch können wir den Crawler-Status innerhalb eines bestimmten Zeitraums abfragen. Das Folgende ist ein Beispielcode:
$params = [ 'index' => 'spider_monitor', 'body' => [ 'query' => [ 'range' => [ 'timestamp' => [ 'gte' => '2022-01-01T00:00:00', 'lt' => '2022-12-31T23:59:59' ] ] ] ] ]; $response = $client->search($params);
Im obigen Code geben wir einen Zeitbereich an und rufen alle Crawler-Status innerhalb dieses Bereichs ab.
Zusammenfassung:
In diesem Artikel wird erläutert, wie Sie mit PHP und Elasticsearch Webcrawler in Echtzeit überwachen. Durch das Speichern von Crawler-Statusdaten in Elasticsearch können wir Crawling-Ergebnisse schnell abfragen und visualisieren und den Crawler-Betriebsstatus zeitnah verstehen. Ich hoffe, dass dieser Inhalt Entwicklern bei der Überwachung von Crawlern als Referenz und Hilfe dienen kann.
Das obige ist der detaillierte Inhalt vonSo überwachen Sie Webcrawler in Echtzeit mit PHP und Elasticsearch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!