プロが教えるわが家の防犯対策術!

use LWP::Simple;

($content_type, $document_length, $modified_time, $expires, $server)
= head $url;

とすると,$modified_timeに$urlのアドレスのWebページの更新日時が
得られるとあったのですが,何も値が取得できないのはなぜでしょうか.
$expiresにだけ NCSA/1.3という値が入っていました.

A 回答 (4件)

LWP::UserAgent使ってましたがtimeoutがうまくいってくれないので


使うのをやめてしまいました。^^;

で、日付が取得できないのはどのサーバーでもでしょうか?
サーバーによっては日付取得させてくれないのもあるみたいです。

仕組みがわかってしまえばsocketも簡単ですから、LWP::Simpleに
頼らず自力で書いてしまっては?参考URLを見れば必要なコマンドも
わかりますし。

http://rie.h.kobe-u.ac.jp/~ohkubo/script.shtml
のsky_lib.plなんかも参考になります。

参考URL:http://www.glasscom.com/tone/articles/nos1998b/w …

この回答への補足

参考URLをありがとうございます.大変参考になりました.

LWPでは日付が取得できるサーバとできないサーバがあるようです.

素人な者ですこしお伺いしたいのですが,
自力で書くというのは
HTTP::Requestなどでヘッダ情報を取得するということでしょうか?

LWPで取得できない場合に,「自力」で書くと取得できるようになるのでしょうか?

補足日時:2001/05/01 19:12
    • good
    • 0

>LWPでは日付が取得できるサーバとできないサーバがあるようです.



LWPではというよりも、設定なのかなんなのか、そういうサーバーは
存在します。取得できないページをNetscapeで見て[情報を見る]を
やってみてください。同じように日付が取得できないのではないかと。

WWWDがそうですが、HEADで更新日が取得できないもの、動的出力される
ページなどは、ページのサイズを見て更新されたかどうかを判断
しています。もし更新チェッカを作ろうとしているのならばサイズで
判断してはどうでしょう。

>自力で書くというのは
>HTTP::Requestなどでヘッダ情報を取得するということでしょうか?

違います。use Socket;のみ用いて、あとのやりとりは全て自前で
書くということです。前回参考としてあげたURLにtelnetでアクセス
する方法がありますが、まさにそれをperlでやるのです。
そのほうがあらゆる環境で動くものが作れますし、モジュールに
まかせっきりよりか、何が問題なのかがわかってくるでしょう。

Socketの使い方は同じく前回あげたsky_lib.plが参考になります。
    • good
    • 0
この回答へのお礼

ありがとうございます.
いろいろと勉強になります.

一説によると,サーバのバージョンが古くてLast-modifiedに対応していないのではとのことでした.
どうやら,そのようなサーバのHPはgoogleでは検索されるのに,
更新日時も表示するgooでは検索にひっかからないようです.
gooの人たちが頑張ってもだめということは,
取得は不可能という結論でいいのかな.

お礼日時:2001/05/02 10:11

CGIは正常に稼動してますでしょうか?

この回答への補足

get $url;
でWebページを獲得することはできています.

補足日時:2001/04/27 18:10
    • good
    • 0

Perlはサーバに対応してますか?


もし、無理であるならばJavaで取得するってのはどうでしょうか?

この回答への補足

早速の回答ありがとうございます.
「Perlがサーバに対応」の意味が少しわかりかねるのですが,
もう少し詳しい説明が頂けないでしょうか?
よろしくお願いします.

補足日時:2001/04/27 15:58
    • good
    • 0

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