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 サイトの他の関連記事を参照してください。