• ベストアンサー

特定のページから自動でデータを取得する

Yahoo!ファイナンス等で株価のデータを毎日決まった時刻に取得し、データベースとして保存したいと考えています。 私が知りたいことは以下の2点です。 1、特定のページに書いてある情報の自動取得の方法 2、特に誰かが操作しなくてもサーバ側で毎日決まった時刻に自動的にデータを取得することが出来るのか。 以上です。 PHP+mySQLで以上のことは実現可能でしょうか。 よろしくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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もサーバー環境によって使えなかったりする場合があるかも知れません。

参考URL:
http://www.php.net/manual/ja/features.commandline.php
333sec
質問者

お礼

丁寧なご回答ありがとうございました。 レンタルサーバーで運用したかったので、Cronが使えるサーバーも見つかりあとはPHPを組むだけです。 とても感謝しています、ありがとうございました。

関連するQ&A

  • 特定のWEB上の情報を収集して、自動的にDBに保存する方法

    特定のWEB上の情報を収集して、自動的にDBに保存する方法を教えてください。 たとえば(あくまで例えばですが)、株価情報を株価情報のサイトから取得して、その情報を自前のサーバーのデータベースにいれる、というようなことをしたい考えているとします。 cronを使えば、定期的に何かを実行させることができる、というところまではわかったのですが、それ以上のことがわかりません。 おそらく、株価の情報サイトからHTMLのデータをひろってきて、そこから目的の値を抽出するのでしょうが、 1、どうやって(どのようなプログラム言語を使って)特定のサイトからHTMLのデータをひろってくるのか 2、どうやって(どのようなプログラム言語を使って)HTMLのデータから目的の値を抽出するか 3、どうやって(どのようなプログラム言語を使って)抽出した値をDB(mySQL)に保存するか この3つが特にわからない(知りたい)のです。 ちなみに今私が知っている言語は、mySQL,PHP,Cくらいです。 また、これを実現しようとしている環境についてですが、OSはUnix系で、レンタルサーバーであるものとします。つまり、データのロードも抽出もDB更新もすべてレンタルサーバー上で行いたいと思っています。

  • MySQLにてランダムにデータを取得

    PHP4+MySQL4を使用しています。 MySQLのデータベースから、ランダムにデータを取得することはできますでしょうか? データを取得してPHPで乱数を発生させて、データをランダムに表示するという事は出来たのですが、取得の際にランダムで、というのは出来るのでしょうか? 宜しくお願い致します。

  • 株価を自動取得するソフト

    こんにちは! こちらのご質問の、便乗質問です。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=768527 こちらの質問者の方がおっしゃっている、 > 実行するとエクセルのマクロでYahooファイナンスから > 株価情報を自動的に取得してきて、 > チャートやグラフを作ることが出来ます。 というフリーソフトって、どれのことでしょうか? 他のページで、株価チャート for Excelというフリーソフトが良い、 と聞いたのですが、こちらは分析ソフトであって、 データ自動取得機能ってないですよね…?

  • PHP+MySQLからHTMLページを自動生成?

    初めまして、質問させていただきます。 フォーム(PHP)から送信されたデータ(コメントや写真等)を データベースへ(MySQL)と格納し、 その内容を新規HTMLページを自動生成させ表示させることは可能でしょうか? 既存するPHPで動的に内容を表示させることは簡単に出来るのですが、 そうではなくて、ユーザーから投稿された内容を、 自動的に新規ページを作成して表示させるようにしたいと思っています。 分かりやすく言えば、投稿されたデータをテンプレートに当てはめ、 新規ページを生成するまでをサーバー上で自動的に行いたいのです。 できればPHPとMySQLでこれらを行えればと考えているのですが、 無理ならば他のものでもかまいません。 ちなみに、PHPとMySQLはまだまだ初心者です。 DreamWeaverの機能で動作させ、少しいじれる程度です。 どうかアドバイスをお願いいたします。

    • ベストアンサー
    • PHP
  • データの受け渡し

    お世話になっております。 知り合いからの相談で、ドメイン(サーバ)の違うサイトの間でデータの受け渡しを行うにはどのような流れになるのでしょうか? 詳細を説明すると、同じ形式のテーブル(MySQL)を設定されているサイトが複数(サーバも違う)あるとします。 例え言うと、教えて!GooでIDを取得したとき、yahoo!にもミクシィにもその情報が送信され、同じIDが作られそれぞれのデータベースに保存される。 と、このようなものなのですが、このように、データベースはそれぞれ設定した中にデータを保存させたい。ということを考えた場合、PHPで出来るのか?また、出来るとしたらどのような流れになるのか?知人の相談からはじまった事ですが、勉強のためにも考えてみたいと投稿させていただきました。 お忙しい中恐縮ですが、些細なことでも結構です。アドバイスなど頂戴できたら幸いです。

    • ベストアンサー
    • PHP
  • ページの更新時間を予約して自動で更新するシステム

    ウェブサイト内のページの更新時間を事前に予約しておき、時間になったら更新が自動で行なわれるシステムを探しています。サーバーに専用のツールを置けばよいのか、PHPやPerlといったサーバーサイド・プログラムで実現できるのもなのか、情報提供をお願いします。 自分で思いついた方法の1つとして、PHPでXMLやDBから更新時間のデータを取得し、現在時刻がそれより進んでいたらデータのアップロードを実行するというシステムがあります。例えばある時刻にページAとそこへのリンクを張ったindex.phpファイルを更新するというシステムをindex.php自身(まだリンクはなし)に組んでおき、アクセスされるごとに予約した時刻と現在時刻を比較、現在時刻の方が進んでいれば2つのデータをアップロードが実行。ページAがアップロードされ、index.php自身には新しくページAへのリンクが張られるというものです。しかしこれはindex.phpがアクセスされた時点でプログラムが作動するので、例えばindex.phpが1週間アクセスされなければページAはアップロードされません。実用的な意味ではindex.phpからしかページAへリンクを張らない場合、文句を言われることは無いと思いますが結局のところ完全なシステムではありません。指定した時刻になると確実にプログラムが実行されるシステムを組みたいのです。

  • DB内の日本語データがPHPで取得できない

    利用サーバ:さくらインターネットのレンタルサーバ 利用データベースのバージョン:MySQL 5.1 PHPのバージョン:PHP 5.2.×× PHPMyAdminに記載のMySQL の文字セット: UTF-8 Unicode (utf8) PHPMyAdminに記載のMySQL 接続の照合順序: utf8_general_ci htmlやPHPファイルを、EUC-JPからUTF-8に、全て変えたためなのかは分かりませんが、 データベースに格納されている日本語(というか全角文字?)データを、 PHPで取り出せなくなってしまいました。半角英数字のデータは取得できます。 そのためDBから取得して表示させている文字データのうち、日本語のみが表示されません。 【php.iniファイルの中身】 register_globals = "On" mbstring.language = "Japanese" mbstring.internal_encoding = "UTF-8" mbstring.encoding_translation = "On" default_charset = "UTF-8" output_buffering = "Off" mbstring.http_input = "auto" mbstring.http_output = "pass" mbstring.detect_order = "auto" mbstring.substitute_character = "none" 情報は足りますでしょうか?どなたか、よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • excel2003でwebクエリによるデータ取得がうまくいきません。

    EXCEL2003でWEBクエリにてサイト上のデータを取得しようとすると、 指定したテーブルのデータを完全には取得できないことがあります。 取得しているサイトはYAHOO!ファイナンスの株価欄なのですが、 うまくいかないときは一行目の銘柄の情報しか取得できず、以下は空欄で返されます。 サイトは↓このようなところです。 http://quote.yahoo.co.jp/q?s=4689.t&d=t また同じ手順で取得しなおしてみるとうまくいくときもあります。 以前は失敗する頻度は少なかったのですが、 最近失敗する頻度が多いため投稿した次第です。 回答よろしくお願いします。

  • データの自動取得

    郵便番号の差分データを自サーバへダウンロードしたいです。wgetで個別にダウンロードすることは出来るのですが、自動的に新しい差分ファイルのみを取得したいのですが、何か良い方法を教えてください。

    • ベストアンサー
    • PHP
  • 外部にあるMySQLのデータを取得したい。

    外部にあるMySQLのデータを取得したい。 VB2005を使用して、レンタルサーバー(Linux)にあるMySQLのデータを取得したいと考えています。 ただ、レンタルサーバ上のポートが閉じているため、ODBC接続などは出来ません。 VBからMySQLへ接続する何か良い方法があればご教授下さい。

専門家に質問してみよう