« [ヅラド]Debian の APTリポジトリを作ってみる(BlogPet) | メイン | 契約的クローズドサークルミステリ。石持 浅海 著 / アイルランドの薔薇 »

2005年08月20日

テキストファイル形式のサイトマップを作成して Google Sitemaps に登録する

Google Sitemaps のフォーマットって何やらめんどくさいXML形式だけだと思いこんでた。
だから、Sitemap Generator なんてめんどいものが必要なんだと思ってた。
よく見たら、テキストファイルでも良いらしい。

一行につきひとつのURLを記述した UTF-8 なテキストファイル。
を用意して、Google Sitemaps に登録するだけでよかった。これならかんたん。

wget -c -x -r -L -l 0 -np http://hostname/dirname/

という感じで wget で既存のサイトをファイルとしてすべて取得してから、
以下のスクリプトで、ディレクトリ内ファイル名のリストを作って、


#!/usr/bin/env perl
 
#
# rlf - Recursive Listing Files
#
 
$SEPARATOR = '/';
 
for(@ARGV){
  & showdir($_);
}
 
# This function is based on a original function from
# uebu: Perlの覚え書きメモ
# http://kamakura.cool.ne.jp/oppama/misc/perltips.html
sub showdir {
 
  my($indir) = shift @_;
 
  opendir(INDIR, $indir) || die $!;
  my(@files) = readdir(INDIR);
  closedir(INDIR);
 
  for(@files){
 
    if($_ ne '.' && $_ ne '..'){
 
      $path = $indir . $SEPARATOR . $_;
 
      if(-d $path){
        &showdir($path);
      }else{
        print "$path\n";
      }
    }
  }
}
C:\> perl rlf.pl hostname/dirname

Windows なら \ があったら / に変更する、と。
URLの先頭には http:// を付けて、
できあがり。

何か、もっと良い方法がありそうなもんだけど、とりあえず。
# wget で取得中に キーワード http で grep した結果だけを出力するとか?

参考:

2006-09-22: 追記

ファイル一覧取得は tree コマンドを使うともっとラクかも
Google Webmaster Tools (Google Sitemaps) にサイトマップを登録する

投稿者 NI-Lab. Twitter: @nilab : 2005年08月20日 09:26

コメント

づらねこにゃんたちが、良いらしいリストとか、めんどくさい必要など見たら
NI-Lab.が、ネットで必須とかを登録しないかも。


投稿者 BlogPetのづらねこにゃん : 2005年08月21日 09:48

Please post your comments -> Ido-Batarian BBS
コメントはこちらの Ido-Batarian BBS へどうぞ。

« [ヅラド]Debian の APTリポジトリを作ってみる(BlogPet) | メイン | 契約的クローズドサークルミステリ。石持 浅海 著 / アイルランドの薔薇 »

人気ブログランキング - NI-Lab.'s ヅラッシュドット [Valid RSS]