ホームページ >バックエンド開発 >PHPチュートリアル >クローラーの実践演習: PHP を使用して株式情報をクロールする
株式市場は常に大きな関心を集めています。日々の株価の上昇、下落、変化は投資家の意思決定に直接影響します。株式市場の最新動向を把握するには、タイムリーに株式情報を入手して分析する必要があります。従来の方法では、主要な金融 Web サイトを手動で開き、株価データを 1 つずつ表示していましたが、明らかに煩雑で非効率的でした。現時点では、クローラーは非常に効率的で自動化されたソリューションになっています。
次に、PHP を使用して、株式データを取得する簡単な株式クローラー プログラムを作成する方法を示します。
クローラプログラムを作成する前に、次の作業を準備する必要があります。
このうち、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 ソース コードを取得できない。
以上がクローラーの実践演習: PHP を使用して株式情報をクロールするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。