Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk memantau perangkak web dalam masa nyata menggunakan PHP dan Elasticsearch

Bagaimana untuk memantau perangkak web dalam masa nyata menggunakan PHP dan Elasticsearch

WBOY
WBOYasal
2023-07-07 20:30:261024semak imbas

Cara menggunakan PHP dan Elasticsearch untuk memantau perangkak web dalam masa nyata

Pengenalan:
Perangkak web boleh membantu kami memperoleh sejumlah besar data daripada Internet. Walau bagaimanapun, apabila program perangkak berjalan untuk masa yang lama, kita selalunya perlu memantau status berjalannya dan hasilnya dalam masa nyata. Artikel ini akan memperkenalkan cara menggunakan PHP dan Elasticsearch untuk melaksanakan pemantauan masa nyata perangkak web, supaya kita boleh memahami situasi merangkak tepat pada masanya.

  1. Persediaan
    Sebelum kita mula, kita perlu memasang dan mengkonfigurasi alatan berikut:
  2. PHP: Dalam contoh ini, kita menggunakan PHP sebagai bahasa pembangunan.
  3. Elasticsearch: digunakan untuk menyimpan dan mencari data pemantauan perangkak.
  4. Komposer: digunakan untuk menguruskan kebergantungan PHP.
  5. Pasang dependencies
    Kami menggunakan Composer untuk memasang pustaka klien PHP Elasticsearch, jalankan arahan berikut:

    composer require elasticsearch/elasticsearch
  6. Buat sambungan Elasticsearch
    Buat sambungan Elasticsearch menggunakan kod berikut:

    require 'vendor/autoload.php';
    
    use ElasticsearchClientBuilder;
    
    $client = ClientBuilder::create()
     ->setHosts(['localhost:9200'])
     ->build();

    sediakan Elasticsearch Hos dan port boleh diubah suai mengikut situasi sebenar anda.

  7. Buat indeks pemantauan perangkak
    Dalam Elasticsearch, kita perlu terlebih dahulu mencipta indeks untuk menyimpan data pemantauan perangkak. Jalankan kod berikut untuk mencipta indeks:

    $params = [
     'index' => 'spider_monitor',
     'body' => [
         'mappings' => [
             'properties' => [
                 'url' => ['type' => 'text'],
                 'status' => ['type' => 'keyword'],
                 'timestamp' => ['type' => 'date']
             ]
         ]
     ]
    ];
    
    $response = $client->indices()->create($params);
  8. Pantau status perangkak
    Dalam program perangkak, kita boleh memantau statusnya dalam masa nyata dengan memasukkan data ke dalam Elasticsearch. Berikut ialah contoh kod:

    $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);

    Dalam kod di atas, kami memasukkan URL perangkak, status berjalan dan cap masa semasa sebagai dokumen ke dalam indeks.

  9. Soal status perangkak
    Dengan menggunakan fungsi carian Elasticsearch, kami boleh menanyakan status perangkak dalam julat masa tertentu. Berikut ialah contoh kod:

    $params = [
     'index' => 'spider_monitor',
     'body' => [
         'query' => [
             'range' => [
                 'timestamp' => [
                     'gte' => '2022-01-01T00:00:00',
                     'lt' => '2022-12-31T23:59:59'
                 ]
             ]
         ]
     ]
    ];
    
    $response = $client->search($params);

    Dalam kod di atas, kami menentukan julat masa dan mendapatkan semua status perangkak dalam julat itu.

  10. Hasil pemantauan visual
    Untuk memaparkan hasil pemantauan dengan lebih intuitif, kami boleh menggunakan alatan pihak ketiga (seperti Kibana) untuk menggambarkan data dalam Elasticsearch. Melalui Kibana, kami boleh membuat papan pemuka, carta, dsb. untuk memantau status perangkak dalam masa nyata.

Ringkasan:
Artikel ini memperkenalkan cara menggunakan PHP dan Elasticsearch untuk memantau perangkak web dalam masa nyata. Dengan menyimpan data status perangkak dalam Elasticsearch, kami boleh membuat pertanyaan dan memvisualisasikan hasil rangkak dengan cepat dan memahami status operasi perangkak tepat pada masanya. Saya berharap kandungan ini dapat memberikan sedikit rujukan dan bantuan untuk pembangun dalam proses pemantauan crawler.

Atas ialah kandungan terperinci Bagaimana untuk memantau perangkak web dalam masa nyata menggunakan PHP dan Elasticsearch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn