- ベストアンサー
特定のページから自動でデータを取得する
Yahoo!ファイナンス等で株価のデータを毎日決まった時刻に取得し、データベースとして保存したいと考えています。 私が知りたいことは以下の2点です。 1、特定のページに書いてある情報の自動取得の方法 2、特に誰かが操作しなくてもサーバ側で毎日決まった時刻に自動的にデータを取得することが出来るのか。 以上です。 PHP+mySQLで以上のことは実現可能でしょうか。 よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
1について $data = file_get_contents("http://ヤフーファイナンス"); などでデータを取得できるのではないかと思います。 また、既存のサービスにRSSやAPIなどのサービスがあればそちらからデータを取得するといいかも知れません。 ファイナンスでそのようなサービスはなさそうな気がしますが。 ヤフーファイナンスの仕組みが認証などを必要とする場合はfile_get_contentsではなく、fsockopenなどを利用して必要なHTTPヘッダを送信する必要があります。 fsockopen関数について http://jp.php.net/manual/ja/function.fsockopen.php $dataが取得できてしまえば、正規表現やDOM関数を利用するなどしてデータを取得できるのではないかと思います。 2について OSはLinuxでしょうか? 通常自動処理を行う場合、cronというデーモンを利用します。 crontab -e などのコマンドで実行したい時間と実行したいプログラム(PHPスクリプト)を設定します。 cronから動作させる場合、PHPはapacheモジュールではなくCLIとして動作するので、 PHPスクリプト内に#!/usr/bin/phpなどと書き、パーミッションを755などに変更して実行権限を与える必要があるかと思います。 cronもCLI版PHPもサーバー環境によって使えなかったりする場合があるかも知れません。
お礼
丁寧なご回答ありがとうございました。 レンタルサーバーで運用したかったので、Cronが使えるサーバーも見つかりあとはPHPを組むだけです。 とても感謝しています、ありがとうございました。