*

ようやっとiTunesMusicStoreのRSSを弄ってみた。

公開日: : ブログ関係

何とかiTunes Music StoreのRSSを利用して、Blues, Classical, Jazz、Latinの中でのトップ10アルバムを表示してみました。右下のほうにちょこんとありますので、よろしければ。
 #[加工元のIMSのRSS生成サイト]iTunes Music Store RSS Generator
しかしまだ、名前と概説しかのっけられてません…とりあえず、アルバム紹介へのリンクを貼りたいのですが、RSSに含まれてるデータは、iTunes Music Storeへのリンクなので、載せたとしてもいきなりiTunesが起動されるか、インストールすらされていなければどうなるかもわかりません代物で(^_^;
何はともあれ…


MSN MusicはRSSを吐くらしいのエントリーで、oscarblogさんにiTunesのRSSについてコメントをもらって、よっしゃいっちょやってみようと思ってから、軽く1月半以上…
仕事で使えた方が今後いいだろうということで、「Amazon.co.jp: 本: Blog Hacks ―プロが教えるテクニック&ツール100選」を買って見たものの、どうやら簡単に出来るものではなく、きちんと(?)PerlやらXMLやらやっておかないと無理な予感。
しょうがないので一念発起して、オライリーの『初めてのPerl』やら『プログラミングPerl』やら買い込んで、仕事の合間にカリカリやってきました…いやはや3日開けると忘れてる忘れてる…学生のころはもっと覚えも集中力もあったような…と思いつつ何とかBlogHackのドアを叩けるようになりました(-_-;
何か面白いことが出来るように精進せねば…何か要望などありましたらどうぞコメントくださいませ。そして、oscarblogさん改めてありがたうございました。
後はcrontabとシェルスクリプトがちゃんと動いてるかどうかだ…
ソースを載せておきます。ツッコミ大歓迎です(´・ω・`)ノ
でも、このまま使うのは危険な気がしますので、参考にすることはお勧めしません。なんないと思うけど。


#!/usr/bin/perl -I ./lib

#iTunesのRSSを取り込んでJavaScriptで出力するPerlScript
#定期的にこのscriptをcronで回して更新。

#itunes_parse.pl
#
#<IN> $feedRss : FeedするRSS。http://phobos.apple.com/WebObjects/MZSearch.woa/wo/9.1から生成
#<OUT> itunes_rss.jsファイル。

use strict
use XML::RSS
use LWP::Simple
use HTML::Template
use Encode ;

#対象RSSをLWPでGET。

my $target_rss = "http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStore.woa/wpa/
MRSS/topalbums/sf=143441/genre=9060000/limit=10/rss.xml"
my $local_path = "itunes.rss"
my $res = LWP::Simple::mirror ($target_rss => $local_path) or die "Cant
locate RSS ..." ;

#GETしたRSSをXML::RSSモジュールでParse。

my $rss = new XML::RSS
$rss -> parsefile($local_path) ;

#各要素を取り出していく

my $channel = $rss->channel
my $items = $rss->items ;

my @item_list
foreach (@$items){
my $title = $_ -> {title}
my $description = $_ -> {description}
push @item_list , { title => $title , description => $description }
}

 

#HTML::Templateで、出力していく
my $template = HTML::Template -> new( filehandle => \*DATA );

#paramaterの設定
$template -> param (
maintitle => $rss -> {channel} -> {description} ,
items => \@item_list ,
) ;

#binmodeでSTDOUTのエンコーディング指定
#binmode STDOUT , ":encoding('utf-8')" ;

#Javascriptで出力する際に、クオテーションが問題になるらしいので
#エスケープしておく。エスケープ、エンコーディング周りはよくワカランです…

my @lines = split /\n/ , $template->output()
open (JS , ">itunes_rss.js")
for( @lines ){
s/\x27/&#x27;/g
print JS "document.writeln('$_') ; \n "
}
close JS
exit(0);

#ここからテンプレート
__DATA__
<div id="itunes_list">
<h3><TMPL_VAR name=maintitle escape=HTML></h3>
<dl>
<TMPL_LOOP name=items>
<dt><TMPL_VAR name=title escape=HTML></dt>
<dd><TMPL_VAR name=description escape=HTML></dd></TMPL_LOOP></dl>
</div>

関連記事

no image

未来検索Livedoorからトランペット関連記事を集めてみた

前回、Yahoo!掲示板から「トランペット」関連の話題をピックアップ下のに続いて、次は「未来検索Li

記事を読む

no image

Yahoo!掲示板からトランペットを検索

Yahoo!掲示板で「トランペット」を検索した結果を表示するPerlスクリプトを書きました。 下のほ

記事を読む

  • ラッパ・その他用品のメーカーのWebサイトを"約60サイト集めてみました。セレクトボックスから選択すると該当ページにジャンプします。

    それでも見つからない方はこちらへ…
    ITG Links:Trumpet and Mouthpiece Makers

PAGE TOP ↑