« コエンザイムQ10の驚くべき謎 | メイン | 琉球ラーメン食べました »
以前に、『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[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メッセンジャーで通知するようにすることもできるかもしれません。こっちは試していませんけど…。
投稿者 Dream : 2005年05月26日 01:51
この記事はあなたのお役に立ちましたか?もし気に入っていただけたのでしたら、是非人気blogランキングをクリックしてください。
このエントリーのトラックバック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