mieki256's diary



2004/08/20(金) [n年前の日記]

#3 [prog] perlスクリプトをちょこちょこ作成

あまり人前では口にできない種類の画像掲示板をたまたま見つけて、おお、こりゃ参考資料(<何の資料だ)が一杯じゃわい、DLしてバックアップしておこうかのう、と思ったら。DOM排除を心掛けてるのか、随分と凝った作りのphp動作の掲示板で、DLツールに画像URLをそのまま登録できない。そもそもどこに画像があるのかも、ページを出してみないとわからない。

なんだか急激に、妙な闘志がメラメラと湧いてきた。

ということで、 _LWPモジュール の勉強も兼ねてスクリプトをちょこちょこと。こんな機会でもなきゃ勉強しないしなぁ…(爆) *1

_Perl大名 :

どんな大きな入力ファイルも、*とりあえず配列に* 読み込んでしまおうとする、きわめてものぐさなプログラマのこと。さらにそれを単語毎とか、一文字毎とかの配列に無造作に分割してしまうことも多々ある。(だって楽なんだもん)
オイラだ。I am Perl daimyo. …「大名」を和英辞書にかけてみたら、そのまんま、 _「daimyo」 なんですね。知らなかった。

perlでuniq :

ハッシュとやらを使えばええのん? 重複した行が表示されなくて、ちとハマった。keyだけ取り出せばいいのね。

正規表現は面倒だなー :

なにかこう、正規表現を打ち込むはしから、例文にマッチするかどうか、即座に表示してくれるツールはないものか。<自分で作れよ… (;´Д`) …以前、Proxomitron でそういう処理がなされてたのを見て、感動した覚えが。

正規表現と言っても、言語やツールによって色々記述が違うから、仮に、「正規表現の結果が即座に確認可能」なツールがあっても、汎用性はないだろうな。 *2

コンテンツタイプとやらを複数渡さないと画像はDLできんか :

そもそも複数列挙できるものなのか。知らなかった。

バイナリーファイルには :

binmode() を使う。メモ。

画像ファイルもDLできたーと思ったら :

画像関連ツールに未知のファイル扱いされてしまった。…Irfanview では表示されてるのだけど。何故。

原因判明。コンテンツ取得後、動作確認のために、URL等のテキスト情報を頭の部分に出力・保存してたのが原因だった。消すのを忘れてた。余計なテキスト情報を頭に入れてしまうと、ヘッダが画像ファイルのソレとは異なってしまう。画像ファイルとして認識できないのは当たり前だ。失敗失敗。

しかし、何故、Irfanviewでは表示できたのか。…つまり、Irfanview は、他のツールと違って、ヘッダのみを見てるわけじゃないのだろう。ヘッダから画像ファイルの種類が判別できない場合でも、中身まで分析した上で、画像として認識してるということ。恐るべし、Irfanview。

とまあこのように :

たとえ動機は極めて不純で眉をしかめるものであっても、技術的には色々と課題が出てくるものであります。

学校の授業で、そういう課題を出したら盛り上がらないか。男子中学生・高校生あたりに、「お宝画像をゲットするための技術を身につけよ」なんて題を出したら勉学に対する意欲向上に関して効果てきめんではなかろうか。ダメか。「winny使えばいいじゃん」とか反撃されて萎える先生の図が目に浮かぶ。つーか「お宝画像」とか言ってる時点で発想がDTくさい感も… orz

*1: phpスクリプトを無意味に何度も呼ぶ分、サーバに負荷をかけてるはずだが、知ったこっちゃない。余計なことをしてなければ、最低限の負荷で済んだはずだから。こっちのせいじゃない。ということにする。…サーバ負荷より転送量の方が問題で、あえて面倒臭いやり方をして、転送量を減らそうとしてるのだろうなぁ。…でも、かえって増えそうな気もするんだけど。判断が難しそうな世界ではあります。
*2: xyzzy 上で、perl のつもりで、「()」を使っちゃったりしてハマること多数だったり>自分。「\(\)」じゃないといかんかったり、とか。

以上です。

過去ログ表示

Prev - 2004/08 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project