目次
準備
プログラミング
プログラム テスト
プログラムの最適化
[PHP HTTP クライアント · php-http.org](http://docs.php-http.org/en/latest/)
ホームページ バックエンド開発 PHPチュートリアル クローラーの実践演習: PHP を使用して株式情報をクロールする

クローラーの実践演習: PHP を使用して株式情報をクロールする

Jun 13, 2023 pm 05:32 PM
php 爬虫類 ストック

株式市場は常に大きな関心を集めています。日々の株価の上昇、下落、変化は投資家の意思決定に直接影響します。株式市場の最新動向を把握するには、タイムリーに株式情報を入手して分析する必要があります。従来の方法では、主要な金融 Web サイトを手動で開き、株価データを 1 つずつ表示していましたが、明らかに煩雑で非効率的でした。現時点では、クローラーは非常に効率的で自動化されたソリューションになっています。

次に、PHP を使用して、株式データを取得する簡単な株式クローラー プログラムを作成する方法を示します。

準備

クローラプログラムを作成する前に、次の作業を準備する必要があります。

  1. PHP開発環境のインストール
  2. PHP関連のインストールHTTP リクエスト ライブラリ
  3. HTML DOM の基本的な知識を理解する
  4. XPath 構文を理解する

このうち、HTTP リクエスト ライブラリは、HTTP リクエストを送信するために使用され、ターゲット Web サイトの HTML ソース コードを取得する; HTML DOM は HTML ページの解析と走査に使用されます; XPath は XML および HTML ドキュメント内で選択するための言語です。

プログラミング

クローラー プログラムの作成を開始する前に、ターゲット Web サイトの URL と取得する必要がある株式コードを知っておく必要があります。 Sina Finance を例にとると、その株式データの URL は次のとおりです。

http://finance.sina.com.cn/realstock/company/sh600000/nc.shtml
ログイン後にコピー

このうち、sh600000 は上海証券取引所の証券コードを表します。同様に、深セン証券取引所の証券コードは sz で始まります。取得する必要がある株式コードに基づいて URL を構築し、HTTP リクエスト ライブラリを使用して HTML ソース コードを取得できます。

HTML ソース コードを取得した後、HTML DOM パーサーを使用して HTML ページを解析し、XPath 構文を使用して必要なストック データをフィルターで除外する必要があります。この例では、株式の名前と現在の価格をフィルターで除外する必要があります。

最後に、取得した株式データを印刷します。具体的なコードは次のとおりです。

$code = 'sh600000'; // 股票代码
$url = 'http://finance.sina.com.cn/realstock/company/' . $code . '/nc.shtml'; // 构建URL

$html = file_get_contents($url); // 获取HTML源码
$dom = new DOMDocument();
@$dom->loadHTML($html); // 解析HTML

$xpath = new DOMXPath($dom);
$name = $xpath->query('//h1[@class="name"]/text()')->item(0)->nodeValue; // 筛选股票名称
$price = $xpath->query('//span[@class="price"]/text()')->item(0)->nodeValue; // 筛选当前价格

echo $name . '的当前价格为' . $price;
ログイン後にコピー

プログラム テスト

テストを実行する前に、HTTP 要求ライブラリと関連拡張機能がローカルの PHP 環境にインストールされていることを確認する必要があります。 Windows システムを例に挙げると、次のコマンドを使用してインストールできます。

composer require php-http/guzzle6-adapter
composer require php-http/message
ログイン後にコピー

次に、上海総合指数 (銘柄コード sh000001) の株価データを取得してみます。

$code = 'sh000001'; // 上证指数
$url = 'http://finance.sina.com.cn/realstock/company/' . $code . '/nc.shtml';

$client = new HttpAdapterGuzzle6Client();
$request = new HttpMessageRequest('GET', $url);
$response = $client->sendRequest($request);

$html = $response->getBody()->getContents();
$dom = new DOMDocument();
@$dom->loadHTML($html); // 解析HTML

$xpath = new DOMXPath($dom);
$name = $xpath->query('//h1[@class="name"]/text()')->item(0)->nodeValue;
$price = $xpath->query('//span[@class="price"]/text()')->item(0)->nodeValue;

echo $name . '的当前价格为' . $price;
ログイン後にコピー

コードを実行すると、コンソールに上海総合指数出力の現在の価格情報が表示されます。

プログラムの最適化

上記のコードは単なる例であり、実際のアプリケーションでは、最適化のために次の要素を考慮する必要があります。ネットワークの問題を処理するか、その他の理由で HTML ソース コードを取得できない。

    プログラムが実行されるたびに HTTP リクエストを送信することを避けるために、最近のアクセスの時点までにキャッシュすることができます。
  1. 無限ループを通じて複数の株式を監視し、株価が変化したときに自動的に電子メール通知をトリガーできます。
  2. つまり、株式クローラ プログラムを作成するには、セキュリティ、効率、実用性などの多くの側面を考慮する必要があり、最良の結果を達成するために設計および実装する必要があります。
リファレンス

[PHP HTTP クライアント · php-http.org](http://docs.php-http.org/en/latest/)

    [HTML DOM · w3school.com.cn](https://www.w3school.com.cn/php/php_ref_dom.asp)
  1. [XPath · zh.wikipedia.org](https:// zh.wikipedia.org/wiki/XPath)

以上がクローラーの実践演習: PHP を使用して株式情報をクロールするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

See all articles