• ベストアンサー

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

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

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

  • ベストアンサー
  • gentaro
  • ベストアンサー率47% (105/221)
回答No.2

基本的には、ブラウザを作成する、ということです。 1)ソケットで相手サーバーに接続してhttpリクエストを送る 2)返ってきたレスポンスからHTML記述を解析して欲しい情報を切り出す(スクレイピングという)。 この部分は#1の方の言うとおりモジュールが出回っています。 3)各プログラム言語の方法(MySQLインターフェース)に依存します スクレイピングの困ったところは、相手先の記述が変わった場合、 当然こちら側のプログラムも手直ししなければいけない、という点です 。 また、正式なブラウズではないので、相手側に迷惑をかけない方法を 考慮するのも大事ですね。 Last-Modifiedを見て、更新されていなかったら処理ストップ、など。

tenketu
質問者

お礼

詳しい説明ありがとうございます。これでようやく、勉強を始めることができそうです。

その他の回答 (1)

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

Perl なら WWW::Mechanize というCPANモジュールを使うと思います。関連情報はGoogle検索してみてください。

tenketu
質問者

お礼

ありがとうございます。このキーワードを頼りにこれから勉強していこうと思います。

関連するQ&A