« DirectDrawSurfaceへの描画方法の調査 | メイン | Namazu Perl5.8で動かず »
2004年08月12日
吉里吉里2/KAG3ムービー拡張日誌:: メーリングリストのログDL
Tweet @jin1016をフォローやはり、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