ホームページ  >  記事  >  バックエンド開発  >  Elasticsearch と PHP を使用してリアルタイム Web クローラーを構築する方法

Elasticsearch と PHP を使用してリアルタイム Web クローラーを構築する方法

王林
王林オリジナル
2023-07-07 12:33:251549ブラウズ

Elasticsearch と PHP を使用してリアルタイム Web クローラーを構築する方法

はじめに:
Web クローラーは、インターネットから情報を収集し、それを整理および分析する自動プログラムです。 Elasticsearch は、高速でリアルタイムの検索および分析機能を提供するオープンソースの検索エンジンです。 PHP は、人気のあるサーバーサイド スクリプト言語です。 Elasticsearch と PHP を組み合わせると、Web サイトからデータを収集し、検索と分析のために Elasticsearch に保存するリアルタイム Web クローラーを構築できます。

ステップ 1: Elasticsearch をインストールして構成する
まず、サーバーに Elasticsearch をインストールして構成する必要があります。 Elasticsearch 公式 Web サイトからオペレーティング システムに適したバージョンをダウンロードし、公式ドキュメントに従ってインストールおよび設定できます。

ステップ 2: Elasticsearch インデックスを設定する
Elasticsearch では、データはインデックスに保存されます。インデックスの構造とフィールドを定義する必要があります。以下は、Web サイトからクロールしたデータを保存するためのインデックス定義の例です。

PUT my_index
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text"
      },
      "content": {
        "type": "text"
      },
      "url": {
        "type": "keyword"
      }
    }
  }
}

ここでは、「title」、「content」、「url」の 3 つのフィールドを含む「my_index」という名前のインデックスを定義します。 「タイトル」および「コンテンツ」フィールドは「テキスト」タイプであり、「URL」フィールドは「キーワード」タイプです。ニーズに応じてさらに多くのフィールドを定義できます。

ステップ 3: PHP クローラー コードを作成する
次に、PHP を使用して、指定された Web サイトからデータをクロールし、そのデータを Elasticsearch に保存する単純な Web クローラーを作成します。コード例を次に示します。

<?php

// 定义需要抓取的目标网站URL
$targetUrl = "https://www.example.com";

// 创建一个Elasticsearch客户端实例
$esClient = new ElasticsearchClient();

// 从目标网站上获取HTML内容
$htmlContent = file_get_contents($targetUrl);

// 使用正则表达式提取标题和内容
preg_match('/<title>(.*?)</title>/', $htmlContent, $titleMatches);
preg_match('/<body>(.*?)</body>/', $htmlContent, $contentMatches);

// 抓取到的数据
$title = $titleMatches[1];
$content = strip_tags($contentMatches[1]); // 去除HTML标签

// 构建文档
$document = [
    'index' => 'my_index',
    'body' => [
        'title' => $title,
        'content' => $content,
        'url' => $targetUrl
    ]
];

// 将文档存储到Elasticsearch中
$esClient->index($document);

echo "数据已成功存储到Elasticsearch中!";

?>

このコードでは、まずクロールするターゲット Web サイトの URL を定義します。次に、Elasticsearch と対話するための Elasticsearch クライアント インスタンスが作成されました。次に、file_get_contents 関数を使用してターゲット Web サイトの HTML コンテンツを取得し、正規表現を使用してタイトルとコンテンツを抽出します。最後に、ドキュメントが構築され、Elasticsearch に保存されます。保存操作にはElasticsearchが提供するインデックス機能を利用します。

ステップ 4: クローラー コードを実行する
上記のコードを PHP ファイルに保存し、サーバーにアップロードします。次に、ターミナルまたはコマンド ラインでファイルを実行して、クローラーの実行を開始します。

$ php crawler.php

クローラーは、指定された Web サイトからデータをクロールし、Elasticsearch に保存します。

結論:
Elasticsearch と PHP を組み合わせることで、シンプルだが強力なリアルタイム Web クローラーを構築できます。 Elasticsearch の検索および分析機能を使用すると、クロールされたデータを簡単に検索および分析できます。この記事がお役に立てば幸いです。独自のリアルタイム Web クローラーの構築に挑戦してください。

以上がElasticsearch と PHP を使用してリアルタイム Web クローラーを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。