てぃーだブログ › 作る人 (つくるんちゅ)日記 › CGI FLASH JavaScript › 覚え書き 他のサイトの更新時間を知る方法いろいろ



2009年10月22日

覚え書き 他のサイトの更新時間を知る方法いろいろ

ネットで調べ事をしていると、見つけたホームページの情報が古くて、ガッカリする時があります。
どこかに日付があればいいけど、無い場合は文脈から判断するしかなくて、なんだかワジワジ~してしまう。 (沖縄の方言で、もどかしい の意味)

特に花火やお祭りなどのイベント系だと、今年の情報より、何年か前の記事が検索上位に来ることも多いみたい。

そんな時は、ブラウザーのURLの欄に次の一行を入れてenter!

javascript:alert(document.lastModified)

覚え書き 他のサイトの更新時間を知る方法いろいろすると、そのページの更新時間がダイヤログで表示されます。(IE6/8、Safari、Firefox、Google ChromeでOK)

この方法はブログなどの動的なページでは使えないけど(ブログには日付が入ってますが…)、昔ながらのホームページでは有効です。


上記は、ちょっと調べ事をしていて見つけた副産物。
ご参考まで。

ちなみに、いつも行くブログの更新情報を知りたい場合は、前に書いたRSSを利用する方法がお手軽ですね。
RSS-主婦にお勧め、激安情報

覚え書き 他のサイトの更新時間を知る方法いろいろ

さて、ここから先は、宇宙語だと思って、飛ばして下さい。

Perlでスクリプトを書いていて、ブログの更新を自動で検知したいと思ったんだけど、意外と方法が見つからない。(「別のサーバーのファイルの更新時間を知る」 等でいろいろ検索)

■1、最初に試した方法
LWP::Simpleを使ってヘッダを取得

use LWP::Simple;
($content_type, $document_length, $modified_time, $expires, $server) = head "サイトURL";
($sec, $min, $hour, $day, $mon, $year) = localtime($modified_time);

最初のjavascriptと同じで、動的なページはLast-Modifiedを返さないので失敗。

■2、次に試した方法
同じく、LWP::Simpleを利用。

$url = "サイトURL";
$file = "保存するファイル名";
mirror($url, $file)

mirrorは、与えられたURLとファイルのデータサイズをチェックし、変更があればドキュメントを取得してファイルに格納。という事なんだけど、サイズが同じでも、ブログ相手だと毎回取得してきてしまうみたい。(サイトマップやRSSでテスト)…失敗。

■3、とりあえず成功した方法
ブログのPING送信機能を借用します。

TI-DAブログを更新すると各PINGサーバーに次のような内容が送られます。

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param>
<value><string>サイトのタイトル</string></value>
</param>
<param>
<value><string>サイトのURL</string></value>
</param>
</params>
</methodCall>

PINGサーバー用にいろいろなモジュールがあるみたいだけど、とりあえず受け取るだけなら、stdin(標準入力)経由でもOKみたい。

use CGI qw(:standard);
@pairs=param();
foreach (@pairs) {$in = param("$_");}

これで$inに送信内容が入るので、続いて処理を書けばOK。

ブログの更新通知PING先リストに自作のCGIを加えて、新しい記事を投稿すれば、自動で作業させる事ができますね。

一応、返信はこんな感じ?。
<?xmlversion="1.0"encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>flerror</name>
<value>
<boolean>0</boolean>
</value>
</member>
<member>
<name>message</name>
<value>
<string>Thanksfortheping.</string>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>

というわけで、今日、ふと思いついた方法でした。
いつも生暖かく、このブログ見守って下さる技術系/WEB系の方々、良い方法があったら御指南下さいね。






同じカテゴリー(CGI FLASH JavaScript)の記事



この記事へのコメント
夜中にスイマセン・・・・・・

あまりにも”分からな過ぎる自分”に、

正直笑ってしまいました。

でも、面白いからまた来ますね~~。

あざ~~~~~っす!!!
Posted by 酒酔人酒酔人 at 2009年10月23日 01:57
◇ 酒酔人 さん

すみません。
このへんのネタは、あまり一般的では無いですよね。

詳しい人がヒントくれないかなぁ。と思って書いたもので…。
Posted by IGUIGU at 2009年10月24日 00:25
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

※記事内容に言及無いコメントは、コメントスパムと判断して削除する場合があります。