「みんな教えて! 選手権!!」開催のお知らせ

特定のWEB上の情報を収集して、自動的にDBに保存する方法を教えてください。

たとえば(あくまで例えばですが)、株価情報を株価情報のサイトから取得して、その情報を自前のサーバーのデータベースにいれる、というようなことをしたい考えているとします。

cronを使えば、定期的に何かを実行させることができる、というところまではわかったのですが、それ以上のことがわかりません。
おそらく、株価の情報サイトからHTMLのデータをひろってきて、そこから目的の値を抽出するのでしょうが、
1、どうやって(どのようなプログラム言語を使って)特定のサイトからHTMLのデータをひろってくるのか
2、どうやって(どのようなプログラム言語を使って)HTMLのデータから目的の値を抽出するか
3、どうやって(どのようなプログラム言語を使って)抽出した値をDB(mySQL)に保存するか

この3つが特にわからない(知りたい)のです。

ちなみに今私が知っている言語は、mySQL,PHP,Cくらいです。
また、これを実現しようとしている環境についてですが、OSはUnix系で、レンタルサーバーであるものとします。つまり、データのロードも抽出もDB更新もすべてレンタルサーバー上で行いたいと思っています。

A 回答 (2件)

基本的には、ブラウザを作成する、ということです。



1)ソケットで相手サーバーに接続してhttpリクエストを送る

2)返ってきたレスポンスからHTML記述を解析して欲しい情報を切り出す(スクレイピングという)。
この部分は#1の方の言うとおりモジュールが出回っています。

3)各プログラム言語の方法(MySQLインターフェース)に依存します

スクレイピングの困ったところは、相手先の記述が変わった場合、
当然こちら側のプログラムも手直ししなければいけない、という点です

また、正式なブラウズではないので、相手側に迷惑をかけない方法を
考慮するのも大事ですね。
Last-Modifiedを見て、更新されていなかったら処理ストップ、など。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/01/27 16:56

Perl なら WWW::Mechanize というCPANモジュールを使うと思います。

関連情報はGoogle検索してみてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/01/27 16:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報