mixiの自分の日記のRSSを作るPerlスクリプト(XML::Feedを使ったサンプル)
スポンサードリンク
コメント欄で問い合わせがあって、mixiの自分の日記をRSSに書き出すスクリプトが欲しいって言うんですけれども、3年半前のエントリであったため、すでにスクリプトの賞味期限が切れていたので、2009年8月現在でちゃんと動くスクリプトに直しました。
ユーザーID、パスワードはConfig:Pitで管理する方式です。
パスワード設定をコードに書かない(Config::Pit) - モダンなPerl入門 - モダンなPerl入門 [perl-users.jp]
スクリプトを動かす前に、上記リンク先を参照して、コマンドラインからアカウントとパスワードをセットしておこう。こんな感じでいいのでは。
$ perl -MConfig::Pit -e 'Config::Pit::set("mixi.jp", data=>{ email => "ABC12345", password => "password" })'
filename: miximydiary2rss.cgi
#!/usr/bin/perl use strict; use warnings; use WWW::Mixi::Scraper; use XML::Feed; use DateTime::Format::HTTP; use Config::Pit; my $config = pit_get( 'mixi.jp' ); die "not preset account data in Pit." if !%$config; my $email = $config->{email} or die 'email not found.'; my $password = $config->{password} or die 'password not found.'; my $mixi = WWW::Mixi::Scraper->new( email => $email, password => $password, ); my @list = $mixi->parse( 'http://mixi.jp/list_diary.pl' ); my $rss = XML::Feed->new( 'RSS', version => '1.0', encode_output => 0 ); $rss->title( 'mixi My Diary RSS' ); foreach my $item ( @list ) { my $entry = XML::Feed::Entry->new( 'RSS' ); $entry->title ( $item->{subject} ); $entry->link ( $item->{link } ); $entry->content( $item->{description } ); my $dt = DateTime::Format::HTTP ->parse_datetime( $item->{time} ) ->set_time_zone( 'Asia/Tokyo' ); $entry->issued ( $dt ); $rss->add_entry( $entry ); } print "Content-Type: text/xml; charset=UTF-8;\n\n"; print $rss->as_xml,"\n"; exit; __END__
もしかしたら、mixiの隠しAPIで一発で出せるのかな?
スポンサードリンク
トラックバック(1)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2956
クリスマスイブに作った、HWNDBasedPanelView.comという、InDesignのバグ画面を投稿できるサイト HWNDBasedPanelView.com ですが、今のままだと、いつ新しいHWNDBasedPanelView画像が投稿されたのかわからないので、RSSフィードを付けました。 RSSフィード対応ブラウザや、RSSフィードリーダなどで新着のご覧になれます。 http://hwndbasedpanelview.com/?rm=rss ここら辺の作業になると、ルーチンワークなので、... 続きを読む
コメントする