M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2009年10月25日 13:15

Adobe Creative Suite 出力対応店一覧をGoogle Mapsで表示させる(1)

このエントリーをはてなブックマークに追加 mixiチェック

CreativeSuite4出力店募集中!! - いわもとぶろぐ [blogs.adobe.com]

全国の会社様を案内しているのですが、意外に私の地元
千葉からも応募がなかったり...

地図で出せっつーの!(CV:丹下桜)

というわけで、

http://www.adobe.com/jp/print/printshop/

のCS4対応ショップをGoogle Mapsで表示させる奴、今回は、時間をかけてやりたいと思います。

まず、今回は、アドビのサイトから印刷屋さん一覧のHTMLをギるところからです。ギるの語源はギルティーだってネタはどっからやってきたんだろうな。さっきまで誤用してたじゃないか。くそーLe.Chocolatめ!

環境はLinuxのPerl 5.8.6です。

Filename: test1.pl

#!/usr/bin/perl
 
# Filename: test1.pl
 
use strict;
use warnings;
use Cache::File;
use URI::Fetch;
use Cwd;
my $cwd = getcwd;
my $cache = Cache::File->new(
              cache_root =>  "$cwd/cache",
            );
 
my $ua = new LWP::UserAgent;
$ua->timeout(10);
$ua->agent('DTPWiki.jp AdobeJpPrintShopMap/0.1 '
         . '(+http://labo.dtpwiki.jp/printmap/)'
     );
 
my $res = URI::Fetch->fetch(
  'http://www.adobe.com/jp/print/printshop/',
  Cache     => $cache,
  UserAgent => $ua,
) or die URI::Fetch->errstr;
 
my $html = $res->content;
print $html;
 
__END__

ちゃんとUser-Agentを名乗ってhttp://www.adobe.com/jp/print/printshop/からHTMLを取得します。また、実行ディレクトリの下にcacheフォルダを作ってキャッシュすることにして、コンテンツが変更ない場合はWebから取得しなくするなどしました。

上の例では、アドビさんのURLを指定しているのですけれども、キャッシュがきいていなかったりとか、User-Agentの変更がきいていなかったりするので、最初は自分が取り扱えるWebサーバを指定して、ログを見て判断するようにしましょう。

さっき、URI::Fetch 0.72とか入っていて、最新版LWPとバージョンが合わず、User-Agent変更がきいてなかったりしました。

次回は、取得したHTMLコンテンツを解析して、プログラムで扱えるようなリストにするところまでやろうかなあと思います。でも、取得したコンテンツがキャッシュにヒットしたやつなのか、Webから取得したやつなのか判断するのが必要かも。


(2009-10-25 14:13追記)

次のエントリ書くために調べていたんですけれども、Adobeのリストが載っているページは、常にHTTPのステータスコード200を返すということがわかりました……どうしよう……

投稿 大野 義貴 [GoogleMaps] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3016

コメントする