IT Office Nishimiyahara

個人用スマホから商用プログラミングまでなんでもお任せ下さい

昔書いたスクリプトをグレードアップした

      2014/05/14

WWW::MechanizeとWeb::ScraperでLast.fmからfreemp3をダウンロードするスクリプトを久しぶりに動かしてみたら、エラーになった…。
確認したところ、どうやらコンフィグ(Config::YAML)の使い方に問題があったようだ。
なんとも恥ずかしい。
そこで、最近使い方を覚えた小技をいくつか加えてグレードアップすることにした。
Config::Pitを使ってみたり、autodieを使ってみたり。
Config::PitはWindowsでは使えないと勝手に思い込んでいたけど、普通に使えた。
スクリプトにアカウント情報を入れなくても済むので、ブログで公開するときにも気を使わなくて済むのが良いです。
Config::Pitは、getとsetが組になっていて、まずはsetでアカウント情報を記録しておきます。
やり方は幾つかあるのですが、とりあえず今回のスクリプトに合わせて作ったスクリプトを晒しておきます。

usernameとpasswordの値を、実際のアカウント情報に変更してから実行すると、私の環境では

の中に、YAMLファイルで入力した情報が保管されていました。
あとは使うときにsetで使ったキー(今の場合は「last.fm」)で引いてやると、このアカウント情報がちゃんと使えます。
便利ですね。
autodieは、Fatalの自動版という感じでしょうか。
use autodieとしておくだけで、色々なエラーを捕まえてdieしてくれます。
例えば以下のようなスクリプトでは、ファイルがなかった時にはdieします。

便利ですね。


ということで、本題。
Web::ScraperとWWW::Mechanizeの合わせ技です。
今回は、このスクリプトでちゃんと動かして確認しているので、問題ない。…はずです。
mechでリンクをたどっていく場合もそうですが、HTMLのソースを確認したいので、都度保存して解析に使っていました。
そのへんの名残もそのまま置いてあります。
ひょっとすると、将来の自分のため…かもしれませんが。

respo

respo link

ZenBackWidget

 - 情報技術について