« コエンザイムQ10の驚くべき謎 | メイン | 琉球ラーメン食べました »

2005年05月26日

Yahoo!テレビを使って番組の検索を行うPerlスクリプト

[ Category : プログラミング ]

以前に、『Spidering hacks―ウェブ情報ラクラク取得テクニック101選』という本のことを書きました。

この本のHACK #52に、Yahoo!テレビを使って番組の検索を行うPerlスクリプトが掲載されています。例えば

perl yahootv.pl "富山" "あるある"

という感じで起動すると

5月29日(日) (21:00~21:54: 富山テレビ-発掘!あるある大事典2) -

みたいに結果が返ってくるスクリプトです。

これを使ってみようとしたのですが、どうもYahooテレビの書式が変わったみたいでうまく動作してくれませんでした。

そこで調べたところ、検索まではできているのですが結果表示の部分が動作していないことが分かりました。というわけで以下のように改造すると動作しました。

「yahootv.pl」の27行目あたり

my @result = $content =~ 
    m!<tr align=left valign=top bgcolor="#ffffff">(.*?)</tr>!migs;

これを以下のように書き換えます。

my @result = $content =~ 
    m!<tr align=left valign=top bgcolor="#\w{6}">(.*?)</tr>!migs;

つまり、テーブルの背景の色を指定している「ffffff」を「\w{6}」と書き換えます。ちなみに「\w{6}」の意味ですが、「\w」が半角英数字を表し、「{6}」は6桁を表します。つまり「6文字の単語(半角の英数字)」ということです。

それからデータの出力するところのprint文ですが


print "$data[1] ($data[2]: $data[3]-$data[4]) - $data[5]\n";

と配列で指定しています。これは

  • $data[1]:日付
  • $data[2]:時間
  • $data[3]:放送局名
  • $data[4]:番組名

が入っています。$data[5]は空みたいです。サイトの変更で変わったためかもしれません。

ちなみに、$data[6]には番組詳細が、$data[10]にはGコードが入っているので必要なら出力するようにするといいでしょう。私は番組詳細もGコードも出力して欲しいので以下のようにしています。


print "$data[1] ($data[2]) $data[3] $data[4] - \n$data[6] $data[10]\n";

こうすると

5月29日(日) (21:00~21:54) 富山テレビ 発掘!あるある大事典2 -
発掘!あるある大事典2◇日本人最大の悩みともいわれる肩凝り。5人のマッサージ師による実態調査を行い「背中タイプ」「腕タイプ」「首タイプ」の3つの肩凝りのタイプが判明…… 993813

という感じになります。

こんなこともできますね。


print "日付:$data[1]\n";
print "時間:$data[2]\n";
print "$data[3]放送\n";
print "番組名:$data[4]\n";
print "内容:$data[6]\n";
print "Gコード:$data[10]\n\n";

こうすると

日付:5月29日(日)
時間:21:00~21:54
富山テレビ放送
番組名:発掘!あるある大事典2
内容:発掘!あるある大事典2◇日本人最大の悩みともいわれる肩凝り。5人のマッサージ師による実態調査を行い「背中タイプ」「腕タイプ」「首タイプ」の3つの肩凝りのタイプが判明……
Gコード:993813

番組が複数ヒットしたときに空行を入れるために、Gコードのあとを\n\nと改行を二つにしています。もちろんお好みに応じて順番を入れ替えるのもできますね。

あと本にも書かれていましたが、カレンダーに追加してYahooメッセンジャーで通知するようにすることもできるかもしれません。こっちは試していませんけど…。


IDEA HACKS! 今日スグ役立つ仕事のコツと習慣

原尻 淳一, 小山 龍介 東洋経済新報社

¥ 1,575

TIME HACKS!

小山 龍介 東洋経済新報社

¥ 1,575

STUDY HACKS!

小山 龍介 東洋経済新報社

¥ 1,575

PLANNING HACKS!

原尻 淳一 東洋経済新報社

¥ 1,575

Mind Hacks―実験で知る脳と心のシステム

トム スタッフォード, マット ウェッブ オライリージャパン

¥ 2,940

LIVE HACKS! [ライブハックス!]

大橋 悦夫 ゴマブックス

¥ 1,575

Spidering hacks―ウェブ情報ラクラク取得テクニック101選

Kevin Hemenway, Tara Calishain, 村上 雅章 オライリー・ジャパン

¥ 3,675

Binary Hacks ―ハッカー秘伝のテクニック100選

高林 哲, 鵜飼 文敏, 佐藤 祐介, 浜地 慎一郎, 首藤 一幸 オライリー・ジャパン

¥ 3,360

Excel Hacks 第2版― プロが教える究極のテクニック140選

David Hawley, Raina Hawley オライリー・ジャパン

¥ 3,045

投稿者 Dream : 2005年05月26日 01:51

この記事はあなたのお役に立ちましたか?もし気に入っていただけたのでしたら、是非人気blogランキングをクリックしてください。

メールマガジンも読んでね!!

メールマガジンを発行しています。タイトルは『すぐ使える!インターネット100倍活用テクニック』

生活に役立つ便利なサイトの紹介、目的の情報を適格に探し出すテクニックから最近話題のブログやアフィリエイトの話題など、インターネットを快適に使いこなすテクニックを分かりやすく解説するという内容です。あなたのインターネットライフが劇的に変化しますよ!!是非購読してください。

すぐ使える!インターネット100倍活用テクニック (まぐまぐマガジンID:0000118229)

メールマガジン登録

メールアドレス:

トラックバック

このエントリーのトラックバックURL:
http://www.sf-dream.com/cgi/mt33/mt-tb.cgi/395

このリストは、次のエントリーを参照しています: Yahoo!テレビを使って番組の検索を行うPerlスクリプト:

» Nice from Michael
The three Rs of Microsoft support: Retry, Reboot, Reinstall. [続きを読む]

トラックバック時刻: 2006年11月23日 22:27

» Beatifully from Ashley
Failure is not an option. It comes bundled with your Microsoft product. [続きを読む]

トラックバック時刻: 2006年11月23日 22:27

コメント

コメントしてください




保存しますか?


     
人気のエントリー
フリーのMP3編集ソフト「AudioEditor」の使い方
セキュリティのかかったPDFファイルからテキストを抽出する方法
着うた作成に関する質問と回答
DOSからUSBメモリやUSB HDDを使う方法
HD-120U2が認識しない
スピリチュアル・カウンセラー江原 啓之(えはら ひろゆき)について
ドコモ フォーマ ラクラクホン FOMA F880iES
雨の日の白杖歩行に、「手に持たずにさせる傘」
無料で電話をかける方法
解決:HD-120U2が認識しない