« DirectDrawSurfaceへの描画方法の調査 | メイン | Namazu Perl5.8で動かず »

2004年08月12日

吉里吉里2/KAG3ムービー拡張日誌:: メーリングリストのログDL

    

やはり、DirectShowのメーリングリストのログから検索したくなり、メーリングリストのログをDLすることに。
DLするために簡単なPerlスクリプトを書く。
以下のような感じ。

※このままでは実行できません。
これでしばらく実行しておけばローカルにログのコピーが置ける。
ローカルにたまったらNamazuでインデックスを作ろう。


$target_url = 'www.freeml.com';
$base_url = 'http://www.freeml.com/message/directshow@freeml.com/';
$target_object = 'message/directshow@freeml.com/';
$start_num =;
$end_num =;

use Win32::Internet;

local $INET = new Win32::Internet();    # WinInetのインスタンスを得る
if( defined( $INET ) ) {        # 成功
   local $HTTP;
   $INET->HTTP( $HTTP, $target_url );  # HTTPのインスタンスを得る
   if( defined( $HTTP ) ) {            # 成功
       $HTTP->ConnectBackoff(2000);    # リトライの間隔 (in milliseconds)
       $HTTP->ConnectRetries(100);
       $HTTP->ConnectTimeout(10000);   # in milliseconds
       $HTTP->ControlReceiveTimeout(10000);
       $HTTP->ControlSendTimeout(10000);
       $HTTP->DataReceiveTimeout(10000);
       $HTTP->DataSendTimeout(10000);
       for( $i = $start_num; $i <= $end_num; $i++ )
       {
           print "Reading    page - $i\n";
           $send_command = sprintf("%07d",$i);
           {
               my $REQ;
               $ref_page = "http://" . $target_url . "/" . $target_object . $send_command;
               print "Open " . $ref_page ." ... ";
               $HTTP->OpenRequest( $REQ, $target_object . $send_command, "GET","", "","text/*\0image/gif\0image/jpeg\0\0",INTERNET_FLAG_RELOAD );  # HTTPのリクエストを生成
               if( defined( $REQ ) ) {                     # 成功
                   print "Success.\n Reading...";
                   sleep(1);
                   $REQ->SendRequest();        # リクエストを送る
                   $file = $REQ->ReadEntireFile();         # 返ってきたデータを読む
                   $REQ->Close();                          # リクエストを閉じる
                   {
                       open( FOUT, ">$send_command.html" ) or die "cannot open file!";
                       print FOUT $file;
                       close( FOUT );
                   }
               }
               else {
                   print "Fail.\n"
               }
           }
       }
       $HTTP->Close();
   }
   $INET->Close();
}



投稿者 Takenori : 2004年08月12日 09:20




comments powered by Disqus
Total : Today : Yesterday : なかのひと