今までに iMacros の話って書いたこと無かったな。
仕事などで、大量のデータが必要になることがある。
データサンプルが欲しかったり、複数部に分割されたリファレンスを手元においておきたかったり。
大抵は、wget でダウンロードする。
これは、WEB ページを丸ごとダウンロードするためのツール。
とあるページを起点に、そこから4回のクリックで到達できる範囲は全部取得する、とか、jpg ファイルに限って取得する、とか、URL のディレクトリ階層が下位の部分のみ取得する、とか、いろいろな条件をつけてダウンロードできる。
これで大抵の作業は完了する。
でも、時々 wget では取得できないことがあるのだ。
こういうツールで引っこ抜かれることを嫌がるのか、ブラウザ判別や cookie による一時キーの発行などを使って、ダウンロードできないようにしてあるページは、結構存在する。
たとえば、w3m を使う、という方法もある。
これは「変なブラウザ」ではあるが、ちゃんとしたブラウザだ。cookie だって使える。
その一方で、w3m は「ツール」でもある。
ダウンロードしたデータの保存も指定できるし、バッチ実行が可能だ。
しかし、近年 Javascript が活用されるようになり、w3m は力不足になった。
w3m では javascript がまともに動かないのだ。
というわけで登場するのが、iMacros。
これはかなり強力なツールだ。
といっても、使うことは1年に1度あるかないか。普通は wget で十分だから。
なので、使うときだけ導入して、使い終わったらアンインストールしてしまうことが多い。
iMacros は、IE、Firefox、Chrome など、いくつかのブラウザで使用できるプラグインだ。
もっとも、chrome 版はまだ開発途上で機能が少ない。
全機能が欲しいなら IE 版がよいのだろうけど、僕は Firefox 版を使うことが多い。
で、iMacros で何ができるかと言うと、名前のとおりマクロを組める。
言い換えれば、ブラウザの操作を自動化できる。
マクロを作るのは簡単だ。
「RECORD」ボタンを押して記録状態にしたら、自分でマウスなどを使ってブラウザ操作するだけ。
これで、大抵の動作は覚えてくれる。
複雑なことをしたい場合でも、自動記録で雛形を作っておいて、修正することで簡単に目的を達成できる。
しかし、これだけだとただの「自動化ソフト」に過ぎない。
iMacros の本領は、HTML の操作機能にある。
HTML を正規表現で検索し、見つけ出した対象に対してアクションを実行できる。
たとえば、特定の URL パターンを持つ画像を見つけ出し、保存したりできる。
このとき、「保存」は、ブラウザの保存機能を呼び出すわけではない、というのがミソだ。
iMacros はブラウザの動作を自動化するソフトだが、独自の動作も持っているのだ。
「保存」を行うと、あらかじめ指定してあるディレクトリに対し、あらかじめ指定した名称で(もしくは、ダウンロード URL に含まれた名称で)、すでにダウンロードしたキャッシュデータを保存する。
再ダウンロードは必要ないので、目の前にあるデータを確実に保存できる。
(状況によっては、リロードできないページと言うのも存在するのだ)
HTML を直接操作しているので、「右クリックで保存」を CSS や Javascript を駆使して禁止しているような場合でも保存が可能だ。
…禁止しているものを可能にするのだから、著作者の意向とは違うことをしているかもしれないことは胸に留めておこう。
ここから少し、iMacros の話ではなく、法的な話になる。
iMacros を使えば、「技術的には」データのダウンロード保存が可能となるかもしれない。
しかし、技術的に可能だから保存してよいかと言えば、そうではない。
データの利用条件をよく読み、ダウンロード禁止と明示されていない場合にのみ、保存が許されると考えてよいだろう。
厳密なことを言えば、「ダウンロード禁止」と謳っている WEB サイトがあったとして、その禁止条項自体の有効性には疑問がある。
WEB の仕組みと言うのは、データをダウンロードして閲覧させるものだからだ。
つまり、WEB に掲示している時点でダウンロードを許可していることになり、「禁止」と明示することに意味が無い。
しかし、規約と言うのは明文化されたものではあるが、杓子定規に解釈するものではない。
ダウンロードが前提である WEB で「ダウンロード禁止」と書いてあるのだとしたら、WEB で閲覧する以上のダウンロード行為…明示的、かつ永続的に再利用するためのファイル保存を禁じていると考えるべきだろう。
この場合、ブラウザが「メモリ上に」ダウンロードして閲覧させることや、「一次的に」キャッシュファイルを残すことは除外される。
つまり、一般的な感覚における「ダウンロード」こそが、規約として明示された「ダウンロード」に該当するわけだ。
逆に言えば、ダウンロードを禁じてはおらず、別の条項…2次利用の禁止や再配布の禁止が定められている場合は、自分自身があとで再度参照するために手元にデータを残すことは禁じられていない、と考えてよいだろう。
(ダウンロード可能であることを前提としなくては、2次利用や再配布の禁止に意味が無い)
ともかく、データ著作者の意向は守ること。
強力なツールを手に入れたとき、これは最低限のモラルとなる。
iMacros のもう一つ便利な点は、「繰り返し実行」という実行方法があることだ。
1つのデータをダウンロードして、次のページに進み、再びダウンロードを繰り返す、ということは、よくある。
普通、プログラムを作るのであれば、ループを組むようにしなくてはならない。
しかし、iMacros ではループプログラムは不要だ。繰り返したい回数を入れて、「繰り返し実行」すればよい。
かくして、100ページにも渡るデータであっても、丸ごとダウンロードして保存しておくことが出来るようになる。
初めて iMacros を使ったのは、知り合いに頼まれて、政府系機関が公開しているデータを大量に取得したときだ。
その機関では多くのデータを公開していたが、古いデータは順次公開終了となる仕組みだった。
消える前にデータを保存しておきたかったそうなのだが、政府系機関なので(?)なぜかセキュリティが厳しく、公開されたデータであるにもかかわらず、wget などでは自由に取得できなかったのだ。
最近久しぶりに iMacros にお世話になっているのは、自分の趣味のデータを保存したかったからだ。
そのサイトでは、データの2次利用、再配布を禁じており、簡単にはダウンロードできないようにしてあった。
しかし、利用許諾を見る限り、ダウンロードが禁止、と言うわけではないようだった。
再配布を警戒してダウンロードしにくいようにしてあるだけだったのだろう。
また、サイトに行けばいつでもデータを見られるので、普通に考えればダウンロードする意味も無い。
しかし、僕としては携帯端末でデータを見たかったのだ。
残念ながら、その端末では WEB 接続してサイトに行くことが難しかったので、iMacros を駆使してファイル保存する方法を選んだ。
こういうときに、小回りが利くツールがあると、ちょっと便利である。
注:もう一つのサイト側の意向としては、ダウンロードされてしまうと広告表示できない、と言うこともあると思う。
これに関しては、サイトの意向を尊重して、サイトを訪れる際には気になる広告は内容を見てみる、ということで対処させていただいている。
同じテーマの日記(最近の一覧)
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 |