Linuxゲリラ戦記

/運命の人
E486: パターンは見つかりませんでした: 運命の人

68.Vimによるファイル内検索

ナックス「前回手に入れたgurabia.htmlファイル。早速vimで開いてみてください」

$ vim gurabia.html

Vimでgurabia.htmlファイルを開く

デビー君「開きました」

Vimで開いた

ナックス「このコードを見ても意味がさっぱりわからないと思いますが」

デビー君「うん。さっぱり分からない」

ナックス「ウェブサイトっていうのはhtmlコードっていうコードで書かれているんだ。そして、画像っていうのはimgタグで表示するんだ」

デビー君「imgタグ?」

ナックス「ちょっとimgでファイル内を検索をしてみようファイルを今、Vimで開いている状態だ。コマンドモードであることを確認して、/<imgと入力して」

/imgと記入する

ナックス「Enterキーを押そう」

/imgの結果、カーソルがimgと書かれた場所へ移動する

デビー君「カーソルが<imgと書かれている場所へ移動したぞ!」

ナックス「次にnキーを押してね。大文字で言えばNキーだよ」

Vim起動

デビー君「おっけー。えい!」

nキーを押した結果

デビー君「次にimgと書かれている場所に移動したぞ!」

ナックス「うん。試しにnキーをバンバン押してみて」

デビー君「おお!どんどん次のimgと書かれた場所にカーソルが移動する!」

ナックス「次はShiftキーを押しながらnキーを押してみてね」

Vim起動

デビー君「おお!今度はひとつ前のimgと書かれた場所にカーソルが移動したぞ!」

ナックス「Shiftキーを押しっぱなしにしたままnキーをバンバン押してみてね」

デビー君「おお!バンバン前のimgと書かれた場所に移動する!!」

ナックス「これがVimの力です。ちなみに、別にhtmlコードじゃなくて、普通の文章とかでもファイル内検索できるよ。日本語も検索できるよ。暇な時に試してみてね」

Vimを使用したファイル内検索
/検索キーワード
次の文字を検索する
nキー
前の文字を検索する
Nキー(Shiftキーを押しながらnキーを押す)

ナックス「というわけで、下にimgタグが書かれた場所の例を出します」

<img src="http://imgbbs1.artemisweb.jp/3/idolsuku/img/l1341713951_023172_000001.jpg" width="500" height="711">

ナックス「ずばり!画像ファイルの場所は」

http://imgbbs1.artemisweb.jp/3/idolsuku/img/l1341713951_023172_000001.jpg

ナックス「です」

ナックス「ちなみに、これはただの例です。多分、検索結果が常に一定というわけではないので、私の例と異なるhttp://○☓になってる方もいると思いますが、やり方は同じなので、大丈夫です。今回の目的は、私と全く同じ画像を取得することではなく、最終的に好きな画像を取得することなので」

ナックス「というわけで、試しにwgetコマンドを使って、この画像を取得してみようぜ!」

$ wget http://imgbbs1.artemisweb.jp/3/idolsuku/img/l1341713951_023172_000001.jpg

wgetコマンドを使う

wgetコマンドを使った

ナックス「lsコマンドで確認しよう」

$ ls

lsコマンドを使用する

デビー君「無事に取得できたみたいだ」

ナックス「そうですね。ちなみに、こんな感じに画像を確認できます」

画像を確認できる

ナックス「ここまで出来れば、あとは頑張れば以前教えたGoogle検索APIを使用した画像取得スクリプトと同じような作り方で作れると思います」

ナックス「今後、地道に画像取得スクリプトを作成しますが、多分、Linuxゲリラ戦記の更新遅いので、自力で作れる人は、しびれを切らして各自作ればいいさ」

デビー君「っていうかもっと更新してよ!」

ナックス「次回、69.Vimでのカーソルの移動はhjkl

補足

へそブルー - 画像検索サイト」に関して

この画像検索サイトですが、bingのAPIを使用して作成しています(Bing Search API | Microsoft Azure Marketplace)。で、APIに制限がありまして、1ヶ月につき5000回しか検索できません。

たまに画像検索サイトで検索できなくなってる場合がありますが、私のせいじゃないよ。検索制限回数に達したからだよ。

最近、へそブルーで検索できないことが頻発しています。たぶん、自力で画像収集スクリプトを作成して、へそブルーを利用している人がいると思うのですが、可能であれば検索回数をできるだけ少なくして収集できるようにスクリプト修正していただけると助かります(画像の検索結果一ページにつき2回APIにリクエストを投げています。つまり、例えば wget "http://www.heso.blue/?text=%E6%B0%B4%E7%9D%80%E3%82%B0%E3%83%A9%E3%83%93%E3%82%A2&page=1" という風に1回wgetコマンドを使用すると2回APIを使用したことになります。)

また、これを見ている人で「画像検索サイトを通してじゃなくて、Bing APIを直に教えてくれればいいのに」と思っている方もいると思いますが、このAPIは無料で使えますが、使用にメルアドの登録が必要です。そして、私は初心者の方の心を読めるのですが、プログラミング初心者の人って「メルアド登録したらAPI無料で使えるからメルアド登録してね」って言っても絶対に面倒臭がってメルアド登録してくれないじゃないですか。そして私のサイトから去るんだ……。というわけで解説ではへそブルーを使用して画像収集プログラムを作成する予定です。ただ、もしチャレンジ精神があるならぜひBing Search API | Microsoft Azure Marketplaceを解読して直接APIを叩いて画像収集するプログラムを作成することに挑戦してみてください。

このエントリーをはてなブックマークに追加