• ベストアンサー

ほかのサイトのデータの取得方法

CGIで扱うデータの一部が不定期で不規則に変化します。 たとえばあるときには'a','b'というのを使っていたのに、 その次の日には'a','c'というのを使わないといけないようなものです。 現在は扱うデータの一覧をファイルに保存し、変更があるたびサイト管理者にそのファイルをアップデートしてもらっているのですが、ファイルの変更日時がわかりにくいので変更されているのに気づかないことがある、また毎回変更するのが大変などのデメリットがあります。 よって、自分の所有するサイト使用するデータを保存したファイルを置き、CGIは更新されているかチェックし、変更があるようなら現在のファイルと置き換えるような仕様にしたいと思うのですが、ほかのサイトに保存されているデータの取得方法がわかりません。 たとえば、サーバーの違うhttp://aaa.bb.cc/ddd.datに必要なファイルがあるとして、./eee/ff.datと置き換えるプログラムはどのように作成すればいいのでしょうか?

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

  • ベストアンサー
回答No.1

perlのメジャーなパッケージで、libwww-perl(LWP)というのがあります。 ActivePerlだと、標準配布なのですが、他のperlだと、自分で導入する必要が あるかも知れません。 LWPの同梱されたスクリプトに、lwp-downloadというのがあります。 これは、httpプロトコルでファイルを取得し、ローカルに書き出すスクリプトですが これをそのまま使うなり、参考にして自分の使いやすいようなものを作るのが 良いかと思います。 perlに拘らなければ、curlなど同じような単独プログラムも存在しますけども、 perlの勉強を兼ねて、手作りするのも良いかと思います。

shirousa01
質問者

お礼

LWPを使用して実装しようと思います。 解答有り難うございました。

その他の回答 (1)

  • zebedeer
  • ベストアンサー率66% (80/121)
回答No.2

perl内で行うほうがエラー制御等は行いやすいですが、面倒だったらwgetでもいいのでは? こんな感じで。 `wget -q -O ./eee/ff.dat http://www.example.com/ddd.dat`; サーバに入ってなかったら入れる必要ありますが、メジャーな環境ならバイナリあるし。

参考URL:
http://www.google.co.jp/search?hl=ja&q=wget&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
shirousa01
質問者

お礼

解答ありがとうございます。 ですが、今回はPerlの練習とWWWサーバーへの仕様の安易さからLWPで実装しようと思います。

関連するQ&A