Heim  >  Artikel  >  Backend-Entwicklung  >  So überwachen Sie Webcrawler in Echtzeit mit PHP und Elasticsearch

So überwachen Sie Webcrawler in Echtzeit mit PHP und Elasticsearch

WBOY
WBOYOriginal
2023-07-07 20:30:261024Durchsuche

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.

  1. Vorbereitung
    Bevor wir beginnen, müssen wir die folgenden Tools installieren und konfigurieren:
  2. PHP: In diesem Beispiel verwenden wir PHP als Entwicklungssprache.
  3. Elasticsearch: Wird zum Speichern und Durchsuchen von Crawler-Überwachungsdaten verwendet.
  4. Composer: Wird zum Verwalten von PHP-Abhängigkeiten verwendet.
  5. Abhängigkeiten installieren
    Wir verwenden Composer, um die PHP-Elasticsearch-Clientbibliothek zu installieren. Führen Sie den folgenden Befehl aus:

    composer require elasticsearch/elasticsearch
  6. 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.

  7. 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);
  8. 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.

  9. 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.

  10. Visuelle Überwachungsergebnisse
    Um die Überwachungsergebnisse intuitiver anzuzeigen, können wir Tools von Drittanbietern (wie Kibana) verwenden, um die Daten in Elasticsearch zu visualisieren. Über Kibana können wir Dashboards, Diagramme usw. erstellen, um den Crawler-Status in Echtzeit zu überwachen.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn