Linuxゲリラ戦記

friend=deny&girl=accept

39.Google画像検索のクエリを解析する

ナックス「デスクトップの為の壁紙を自動的に集めるシェルスクリプト作成。4回目」

ナックス「前回も言いましたが、今回のシェルスクリプトではGoogle画像検索を利用します」

ナックス「そこで、今回はGoogle画像検索のクエリを解析します」

デビー君「クエリ……ってなんだ?」

ナックス「クエリとは、ウェブサイトに『この情報をくれー』と要求することです。画像検索の場合は『こんな画像をくれー』ってなことです。つまり、これを解析すればエッチな画ぞ……ゴホン、ゴホン!」

ナックス「ここら辺な話はLinuxプログラミングやシェルスクリプトというよりもウェブプログラミングな話なので、今回はフンフンと聞いていれば良い。そんな回です」

ナックス「さて、一体Google画像検索にどうやってクエリを出すのか。皆さんGoogle画像検索のアドレスに注目!」

Google画像検索サイトのアドレスに注目

http://images.google.co.jp/

デビー君「うーん。ウェブサイトのアドレスに注目したことなんて無いから分からないけど、ごくごく普通のアドレスな気がするけど?」

ナックス「うむ。とりあえずGoogle画像検索から壁紙というキーワードを入れてEnterキーを押そう」

『壁紙』というキーワードを検索窓に入れて

Enterキーを押す

ナックス「アドレスに注目だ!」

http://images.google.co.jp/images?hl=ja&source=hp&q=%E5%A3%81%E7%B4%99&gbv=2&aq=f&aqi=g10&aql=&oq=&gs_rfai=

デビー君「うわ。このアドレスは珍しい種類……な気がする」

ナックス「うむ。アドレスに?がある時は、?以降は全てクエリだと思って構わない」

デビー君「ということは、今回の『'壁紙'と言うキーワードで検索できる画像くれ!』って要求しているクエリの箇所は?以降の」

hl=ja&source=hp&q=%E5%A3%81%E7%B4%99&gbv=2&aq=f&aqi=g10&aql=&oq=&gs_rfai=

デビー君「ってこと?ちょっとした要求でこんなにたくさんの文字を使うなんて……。初心者の僕にはとても解析できそうに無い」

デビー君「──あれ?ナックス。ナックスの説明ではアドレスは」

http://images.google.co.jp/images?hl=ja&source=hp&q=%E5%A3%81%E7%B4%99&gbv=2&aq=f&aqi=g10&aql=&oq=&gs_rfai=

デビー君「になってるけど、スクリーンショットのアドレスを良く見ると」

http://images.google.com/images?hl=ja&source=hp&q=壁紙&gbv=2&aq=f&aqi=g10&aql=&oq=&gs_rfai=

デビー君「っていうように、検索キーワードに使った'壁紙'っていう文字が見えるよ?」

ナックス「はい。実は、基本的にアドレスには日本語を使えません。アドレスに日本語を使いたいときは文字に'URLエンコード'という特殊な処理をほどこしてアドレスに使える文字に変換します。今回の例では'壁紙'という日本語を%E5%A3%81%E7%B4%99という文字に変えています」

ナックス「しかし、最近のウェブブラウザは'クエリ文字は日本語に変換して表示した方が直感的で分かりやすいだろ'ということで、本来はURLエンコードされている%E5%A3%81%E7%B4%99と言う文字を日本語に戻し(URLデコードと言います)て表示する事が多いです」

ナックス「今回の例ではFirefox(Debianなので正確にはiceweaselですが)を使っていますが、Firefoxでも日本語に戻して表示している様ですね。ただし、実態はURLエンコードされた文字です。そのアドレスをコピーして、テキストエディタに貼り付けて見てください。本当の文字が表示されるはずです」

アドレスを選択して右クリック→『コピー』

アドレスを選択してコピーする

nanoでも何でもいいのでテキストエディタを起動して右クリック→『貼り付け』

テキストエディタに貼り付けてエンコードされていない文字を確認する

デビー君「おぉ、本当だ」

ナックス「さて、クエリを出す方法ですが、皆さんシェルスクリプトで教えた変数の話は覚えているでしょうか?」

デビー君「えーっと、名前のつけられた箱に文字や数字を入れるんだね。あ!そう言えばクエリもよく見るとなんだか変数に文字を入れてるみたいに見える」

ナックス「そうです。実はクエリも変数と全く同じ考え方です。つまり先程の」

hl=ja&source=hp&q=%E5%A3%81%E7%B4%99&gbv=2&aq=f&aqi=g10&aql=&oq=&gs_rfai=

ナックス「は、こんな考え方」

hl=ja
source=hp
q=%E5%A3%81%E7%B4%99
gbv=2
aq=f
aqi=g10
aql=
oq=
gs_rfai=

ナックス「で構いません」

デビー君「おーっ!!さっきまで全くわけの分からなかったクエリが、変数スタイルになった途端、ちょっと親近感を感じる!!」

デビー君「えーっと、これを見ると & は、変数の一つ一つを区切るためのもの、ってことで良いの?」

ナックス「その通りです!さて、先程のデビー君のツッコミ『ナックスの例では%E5%A3%81%E7%B4%99になってるけど、Firefox(iceweasel)の例で見ると壁紙っていう文字になってるよ』から推測して、qという変数には検索キーワードを入れれば良い、ということが分かります」

デビー君「え!!ちょっと待って!解析ってそんな簡単な判断でいいの!?」

ナックス「Linuxを使う前。皆さんは『Linuxは一体どれほど難しいんだろう……』と恐怖していたと思いますが、使ってみると意外と簡単ではなかったですか?『案ずるより産むが易し』という言葉にもあるように、やってみれば意外とどうってことはないのです」

デビー君「そ、そうなのか……。でも他の変数に何が入るかは全く分からないよ?ヒントすらない」

ナックス「そうですね。さて、Google画像検索の画面を良く見ると、検索ボタンの中に『検索オプション』と言う文字があります。こいつをクリックしましょう」

検索オプションをクリックする

検索オプションの画面に切り替わる

デビー君「検索オプション……って何だろう?」

ナックス「検索オプションとは、検索する種類の画像を細かく指定出来るものです。『案ずるよりも産むが易し』というわけで、とりあえず『コンテンツタイプ』を『ニュースコンテンツ』にして、そのまま上の『Google検索』ボタンを押してください」

ニュースコンテンツを選択して『Google 検索』ぼたんを押す

検索結果が表示される

デビー君「あれ?画像は検索されてるけど、さっきと検索結果が変わってる……」

ナックス「はい。これは『ニュースサイト』などで使われている画像に種類を絞ったのです。アドレスに注目して──」

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=news&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y

ナックス「クエリを取り出して、変数方式に並び替えてみましょう」

as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=news&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=news
imgsz=
imgw=
imgh=
imgar=
as_filetype=
imgc=
as_sitesearch=
as_rights=
safe=images
as_st=y

デビー君「……確かに、さっきと微妙に同じ変数もあるけど、どう考えても変数の数とバリエーションが増えてるよね……」

ナックス「うん……。僕もまさか、検索オプションからの検索でこれほどクエリが変わるとは思ってなかったんだよ……」

ナックス「と、とりあえず解析します。まず、検索結果のスクリーンショットからみて」

as_q=%E5%A3%81%E7%B4%99

ナックス「には検索キーワードが。」

btnG=Google+%E6%A4%9C%E7%B4%A2

ナックス「には、僕達が押したボタンの名前が。そして最後に名前からして」

imgtype=news

ナックス「が、『種類をニュースコンテンツに絞ったよ』的なものを感じるよね」

デビー君「いやいやいや!感じる気持ちは分かるけど、根拠が無いよ!!」

ナックス「もちろんです。これはまだ推測の域を出ません。とりあえず、もう一回検索ボタン横の『検索オプション』をクリックして──」

『検索オプション』をクリック

検索オプションの画面に切り替わる

ナックス「次は、『コンテンツタイプ』の『顔』を選択して、また右上の『Google 検索』を押してください」

『顔』を選択して『Google 検索』を押す

検索結果が表示される

デビー君「おぉー!!凄い!!検索結果のほぼ全てに人間の顔の画像が!!ちょっと感動!!」

ナックス「ね。この辺を見ると『Googleすごいなー』とか思いますよね。さて、先程と同じようにアドレスを解析します」

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=face&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=face&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
imgtbs=t
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=face
imgsz=
imgw=
imgh=
imgar=
as_filetype=
imgc=
as_sitesearch=
as_rights=
safe=images
as_st=y

デビー君「あ!さっきは imgtype っていう変数には news っていう値が入ってたのに、今度は face っていう値が入ってる!!」

ナックス「そうですね。ここまでくると、 imgtype という変数に入るのは『コンテンツタイプ』に対応した値、っていうことがほぼ確実ですね」

ナックス「さて、他のも念のためさっくりと調べますか。もう一度検索オプションから」

検索オプションをクリックする

ナックス「『写真コンテンツ』を選んで検索」

『写真コンテンツ』を選択して検索

検索結果が表示される

ナックス「クエリ解析」

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=photo&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=photo&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
imgtbs=t
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=photo
imgsz=
imgw=
imgh=
imgar=
as_filetype=
imgc=
as_sitesearch=
as_rights=
safe=images
as_st=y

ナックス「『写真コンテンツ』を選ぶと、imgtype には photo が入るようです。再び検索オプションから」

検索オプションをクリックする

ナックス「『クリップアート』を選んで検索」

『クリップアート』を選択して検索

検索結果が表示される

ナックス「クエリ解析」

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=clipart&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=clipart&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
imgtbs=t
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=clipart
imgsz=
imgw=
imgh=
imgar=
as_filetype=
imgc=
as_sitesearch=
as_rights=
safe=images
as_st=y

ナックス「『クリップアート』を選ぶと imgtype には clipart が入ります。さて検索オプションから」

検索オプションをクリックする

ナックス「『線画』を選んで検索」

『線画』を選択して検索

検索結果が表示される

ナックス「クエリ解析」

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=lineart&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=lineart&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
imgtbs=t
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=lineart
imgsz=
imgw=
imgh=
imgar=
as_filetype=
imgc=
as_sitesearch=
as_rights=
safe=images
as_st=y

ナックス「『線画』の場合は imgtype には lineart が入るようです。さて、検索オプションをもう一度クリックして」

検索オプションをクリックする

ナックス「最後に念のため『すべてのコンテンツ』を選択したアドレスも解析しておきましょう」

『すべてのコンテンツ』を指定して検索する

検索結果が表示される

ナックス「クエリ解析」

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
imgtbs=t
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=
imgsz=
imgw=
imgh=
imgar=
as_filetype=
imgc=
as_sitesearch=
as_rights=
safe=images
as_st=y

ナックス「おー。『すべてのコンテンツ』の場合は imgtype には何も設定しない様ですね」

ナックス「どうやら一番最初の検索オプションを使わない画像検索は、検索オプションからの様に細かい検索設定が出来ない分クエリの変数が少なかったのに対して、検索オプションからの検索は色々条件が指定できる分変数が増える!と見た!」

デビー君「なるほどー。なんか、こういう地道な作業って面白いよね」

ナックス「あー。こういうの面白いって感じる人っていますよね。デビー君もその口ですか」

ナックス「さて。『コンテンツタイプ』解析はクリア。次は検索オプションの『画像サイズ』の解析です」

画像サイズ

ナックス「選択肢が色々ありますが、まずは『中』を選んで検索してみます」

『中』を選択して検索

検索結果が表示される

ナックス「クエリ解析」

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=m&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=m&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
imgtbs=t
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=
imgsz=m
imgw=
imgh=
imgar=
as_filetype=
imgc=
as_sitesearch=
as_rights=
safe=images
as_st=y

デビー君「変数名からして imgsz=m が怪しいよね」

ナックス「そうですね。imgszは image size の略な様な気がします。検索オプションから次は『大』を選んで同じように解析します」

検索オプションをクリック

『大』を選択して検索

検索結果が表示される

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=l&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=l&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
imgtbs=t
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=
imgsz=l
imgw=
imgh=
imgar=
as_filetype=
imgc=
as_sitesearch=
as_rights=
safe=images
as_st=y

デビー君「やっぱりimgszだね」

ナックス「そうですね。おそらく m はMiddle(中くらい)の頭文字で、l はLarge(大きい)の頭文字でしょう」

ナックス「次は検索オプションから『アイコンサイズ』で検索して解析」

『アイコンサイズ』で検索

検索結果が表示される

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=i&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=i&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
imgtbs=t
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=
imgsz=i
imgw=
imgh=
imgar=
as_filetype=
imgc=
as_sitesearch=
as_rights=
safe=images
as_st=y

ナックス「imgszにiが代入されました。おそらくIcon(アイコン)の頭文字でしょう。次は検索オプションから『400×300以上』を選択してみます」

400x300以上を選択して検索

検索結果が表示される

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=qsvga&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=qsvga&imgw=&imgh=&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
imgtbs=t
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=
imgsz=qsvga
imgw=
imgh=
imgar=
as_filetype=
imgc=
as_sitesearch=
as_rights=
safe=images
as_st=y

ナックス「imgszにqsvgaが代入されました。他のものは『画像サイズ』は種類が多いので、実例は無く結果だけお伝えします」

680×480 以上 vga
800×600 以上 svga
1024×768 以上 xga
200万画素以上 2mp
400万画素以上 4mp
600万画素以上 6mp
800万画素以上 8mp
1000万画素以上 10mp
1200万画素以上 12mp
1500万画素以上 15mp
2000万画素以上 20mp
4000万画素以上 40mp
7000万画素以上 70mp

ナックス「となりました」

ナックス「さて、検索オプションから次は『サイズの完全一致』です。とりあえず幅は800を。高さは600を指定して検索してみましょう」

サイズを指定して検索

検索結果

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=&imgw=800&imgh=600&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=&imgw=800&imgh=600&imgar=&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
imgtbs=t
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=
imgsz=
imgw=800
imgh=600
imgar=
as_filetype=
imgc=
as_sitesearch=
as_rights=
safe=images
as_st=y

ナックス「これは一目瞭然ですね。imgwには画像の幅が。imghには画像の高さが指定できるようです」

ナックス「なお、検索キーワードを見ると『壁紙』というキーワードに勝手に『imagesize:800x600』という文字が付け加えられ、『壁紙 imagesize:800x600』というキーワードになっています。さてデビー君。ここから推理出来ることは?」

デビー君「『Google画像検索が壊れた』です」

ナックス「違います。画像のサイズの指定は、検索オプションからではなく検索キーワードにimagesize:800x600と言うように書くことでも指定できるということです」

デビー君「ほほぉー」

ナックス「さて、検索オプションから次は『アスペクト比』を選択します。とりあえず『縦長表示』で試してみましょう」

『縦長』を指定して検索

検索結果が表示される

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=&imgw=&imgh=&imgar=t|xt&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=&imgw=&imgh=&imgar=t|xt&as_filetype=&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
imgtbs=t
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=
imgsz=
imgw=
imgh=
imgar=t|xt
as_filetype=
imgc=
as_sitesearch=
as_rights=
safe=images
as_st=y

ナックス「今までまったく指定されなかった imgar に t|xtが指定されています。ちなみに真ん中の|はLの小文字ではなく、grepコマンドを教えたときに使ったパイプ | の文字です。アスペクト比は縦長の画像か横長の画像かを選べる様ですね。さて、これも結果だけお伝えします」

通常表示 s
横長表示 w
パノラマ表示 xw

ナックス「さて、お次は『ファイル形式』」

デビー君「ファイル形式……って何?」

ナックス「えーっと、初心者に適当に教えると、画像の拡張子」

デビー君「拡張子っていうとa.txtの.txtの部分のことだよね」

ナックス「そうです。もう少し詳しく言うと、画像の場合、拡張子によってそれぞれ特徴があります」

JPGファイル
.jpgという拡張子は写真の画像ファイルに良く使われます。
GIFファイル
.gifという拡張子はペイントソフトで作った画像ファイルに良く使われます。PNGファイルより古くからありますが、PNGファイルより低機能です。
PNGファイル
.pngという拡張子はペイントソフトで作った画像ファイルはもちろん、その高機能さ故に写真の画像ファイルにも使われます。歴史はGIFファイルよりも浅いものの、GIFファイルよりも高機能です。
BMPファイル
Windowsの画像形式で良く使われます。あまりウェブサイトで使われるべき画像形式では無いのですが、画像形式に詳しくない初心者ウェブマスターが良く使っています。

ナックス「みたいな感じですが、私たちは壁紙を集めるのに画像形式にまでマニアックにこだわる必要ありません。一応、解析だけしておきます」

ナックス「えーっとJPGファイルを選択して──」

JPGファイルを選択する

happy.htmlというファイル名でファイルを作る

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=&imgw=&imgh=&imgar=&as_filetype=jpg&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=&imgw=&imgh=&imgar=&as_filetype=jpg&imgc=&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
imgtbs=t
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=
imgsz=
imgw=
imgh=
imgar=
as_filetype=jpg
imgc=
as_sitesearch=
as_rights=
safe=images
as_st=y

ナックス「『JPGファイル』の場合はas_filetypeにjpgが代入されるようです。また、画像サイズと同じように検索キーワードから『壁紙 filetype:jpgi』という風にすれば検索オプションなしで指定出来るみたいですね。さて、後は結果だけ──」

GIFファイル gif
PNGファイル png
BMPファイル bmp

ナックス「となりました」

ナックス「次は検索オプションから『色調』を選んでみます『白黒』を選択すると」

白黒を選択して検索

検索結果が表示される

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=gray&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99&hl=ja&gbv=2&imgtbs=t&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=gray&as_sitesearch=&as_rights=&safe=images&as_st=y
as_q=%E5%A3%81%E7%B4%99
hl=ja
gbv=2
imgtbs=t
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=
imgsz=
imgw=
imgh=
imgar=
as_filetype=
imgc=gray
as_sitesearch=
as_rights=
safe=images
as_st=y

ナックス「imgcという変数にgrayが代入されました。ところで『うわ、白黒の画像カッコいい!白黒の壁紙もアリだな』と胸躍らせたのは私だけでしょうか」

ナックス「ちなみに、フルカラーは結果だけお伝えするとimgcにcolorが代入されていました」

ナックス「次は検索オプションの『ドメイン』ですが、これは画像を検索するサイトのドメインを指定できます。例えばamazon.co.jpの画像を検索するには、amazon.co.jpと書き込んで検索してみます」

ドメインを指定して検索できる

ナックス「結果だけお伝えするとas_sitesearchにamazon.co.jpが代入されていました。ちなみに検索キーワードを『壁紙 site:amazon.co.jp』と言う風に指定することでも検索できるようです」

ナックス「次に検索オプションの『ライセンス』ですが、これは皆さんにあまり関係なく『この画像を商用に使えるか』とか『画像を使うのに著作権表示が必要なのか』とかのライセンスを指定できます。が、皆さんはプライベートである自分のパソコンのデスクトップに画像を使うだけなので、特に著作権とか気にせず使えます。念のために言っておきますが、この画像検索で手に入れた画像を無断で自分のサイトで配布したりとかは止めましょう」

ナックス「というわけで、あまり皆さんに関係ないので結果だけお伝えします」

再使用が許可された画像 as_rights=(cc_publicdomain|cc_attribute|cc_sharealike|cc_noncommercial|cc_nonderived)
営利目的での再使用が許可された画像 as_rights=(cc_publicdomain|cc_attribute|cc_sharealike|cc_nonderived).-(cc_noncommercial)
改変後の再使用が許可された画像 as_rights=(cc_publicdomain|cc_attribute|cc_sharealike|cc_noncommercial).-(cc_nonderived)
改変後の営利目的での再使用が許可された画像 as_rights=(cc_publicdomain|cc_attribute|cc_sharealike).-(cc_noncommercial|cc_nonderived)

ナックス「となりました」

ナックス「最後が『セーフサーチ』です」

デビー君「『セーフサーチ』って何?」

ナックス「未成年にあまり見せられない画像をカットする機能です」

ナックス「フィルタリング(強)は、子供に見せられない画像を極力検索結果から外します。フィルタリング(中)は、子供に見せられない画像を程よく検索結果から外します。フィルタリングしないは、特に画像の検索結果から何かを取り除いたりしません」

ナックス「というわけで、エッチな画像を検索する人は『フィルタリングしない』を選択すれば良いわけですが、そう簡単にはいきません」

デビー君「なんで?」

ナックス「『フィルタリングしない』を選択すると、『限りなきエロ画像』が検索出来ますが『限りなきグロ画像』も検索できます」

デビー君「グロ画像、って何?」

ナックス「グロテスクな画像のことです。例えば、目玉が無い死体や、脳みその無い赤ん坊……」

デビー君「うわー!!やめてやめて!!聞くだけで怖い!!」

ナックス「下手すると、夜に夢の中に出てくることもあります。フィルタリング(中)でも十分エッチな画像は検索できますので、自分のハートの強さと合わせて好きなのを選んでください」

ナックス「これも結果だけお教えしますと」

フィルタリングしない safe=off
フィルタリング(中) safe=images
フィルタリング(強) safe=active

ナックス「となります」

ナックス「さて、感覚がつかめてきた所で検索オプションで飛ばしていた検索条件の『フレーズに関連する』『いずれかのキーワードに関連する』『キーワードに関連しない』も答えだけお教えします」

フレーズに関連する
as_epq=フレーズ
いずれかのキーワードに関連する
as_oq=キーワード
キーワードに関連しない
as_eq=キーワード

ナックス「です。今までのをまとめますと」

検索キーワード
as_q=検索キーワード
押したボタンの名前
btnG=Google+%E6%A4%9C%E7%B4%A2
フレーズに関連する
as_epq=フレーズ
いずれかのキーワードに関連する
as_oq=キーワード
キーワードに関連しない
as_eq=キーワード
コンテンツタイプ
すべてのコンテンツ
imgtype=
ニュース コンテンツ
imgtype=news
imgtype=face
写真コンテンツ
imgtype=photo
クリップアート
imgtype=clipart
線画
imgtype=lineart
画像サイズ
全てのサイズ
imgsz=
imgsz=m
imgsz=l
アイコンサイズ
imgsz=i
400x300 以上
imgsz=qsvga
640x480 以上
imgsz=vga
800x600 以上
imgsz=svga
1024x768 以上
imgsz=xga
200 万画素以上
imgsz=2mp
400 万画素以上
imgsz=4mp
600 万画素以上
imgsz=6mp
800 万画素以上
imgsz=8mp
1000 万画素以上
imgsz=10mp
1200 万画素以上
imgsz=12mp
1500 万画素以上
imgsz=15mp
2000 万画素以上
imgsz=20mp
4000 万画素以上
imgsz=40mp
7000 万画素以上
imgsz=70mp
サイズの完全一致
imgw=幅
高さ
imgh=高さ
アスペクト比
全アスペクト比
imgar=
縦長表示
imgar=t|xt
通常表示
imgar=s
横長表示
imgar=w
パノラマ表示
imgar=xw
ファイル形式
すべてのタイプ
as_filetype=
JPG ファイル
as_filetype=jpg
GIF ファイル
as_filetype=gif
PNG ファイル
as_filetype=png
BMP ファイル
as_filetype=bmp
色調
全種類
imgc=
白黒
imgc=gray
フルカラー
imgc=color
ドメイン
as_sitesearch=ドメイン
ライセンス
ライセンスでフィルタリングしない
as_rights=
再使用が許可された画像
as_rights=(cc_publicdomain|cc_attribute|cc_sharealike|cc_noncommercial|cc_nonderived)
営利目的での再使用が許可された画像
as_rights=(cc_publicdomain|cc_attribute|cc_sharealike|cc_nonderived).-(cc_noncommercial)
改変後の再使用が許可された画像
as_rights=(cc_publicdomain|cc_attribute|cc_sharealike|cc_noncommercial).-(cc_nonderived)
改変後の営利目的での再使用が許可された画像
(cc_publicdomain|cc_attribute|cc_sharealike).-(cc_noncommercial|cc_nonderived)
セーフサーチ
フィルタリングしない
safe=off
フィルタリング(中)
safe=images
フィルタリング(強)
safe=active
その他良く分からないもの
hl=ja
gbv=2
imgtbs=t
as_st=y

ナックス「となります」

デビー君「『その他良く分からないもの』は分からないままでいいの?」

ナックス「そうですね。ここまで解析できれば十分でしょう。hl=jaはおそらく日本のサイトに限定しているのだと思いますが、他は私にも分かりません。これは訳が分からないまま使いましょう」

ナックス「さて、デビー君。検索キーワードが『壁紙』で、コンテンツタイプが『顔』、色調が『白黒』のクエリつきアドレスを作ってみてください。ちなみに、検索キーワードの部分はas_q=%E5%A3%81%E7%B4%99としてね」

デビー君「え!?なんだかいきなりな課題だな。えーっと上のまとめをみながら作るか……。検索キーワード『壁紙』はURLエンコードされたas_q=%E5%A3%81%E7%B4%99を使えってことだから、順番は最後に合わせるとして上から」

as_q=%E5%A3%81%E7%B4%99
btnG=Google+%E6%A4%9C%E7%B4%A2
as_epq=
as_oq=
as_eq=
imgtype=face
imgsz=
imgw=
imgh=
imgar=
as_filetype=
imgc=gray
as_sitesearch=
as_rights=
safe=images
hl=ja
gbv=2
imgtbs=t
as_st=y

デビー君「こんな感じかな。次は順番の整理か……」

ナックス「あ、順番は整理しなくて大丈夫です」

デビー君「え!?」

ナックス「クエリは、どの変数にどんな値が入るかが重要であって、順番は関係ありません」

デビー君「ほ、本当かな……。じゃあ、とりあえず&で合体させて」

as_q=%E5%A3%81%E7%B4%99&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=face&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=gray&as_sitesearch=&as_rights=&safe=images&hl=ja&gbv=2&imgtbs=t&as_st=y

デビー君「えーっと、今までの例を見ると一番最初にhttp://images.google.com/images?っていう文字を付け足せばいいのかな?」

http://images.google.com/images?as_q=%E5%A3%81%E7%B4%99&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&imgtype=face&imgsz=&imgw=&imgh=&imgar=&as_filetype=&imgc=gray&as_sitesearch=&as_rights=&safe=images&hl=ja&gbv=2&imgtbs=t&as_st=y

デビー君「い、一応こんな感じかな?」

ナックス「じゃあそのアドレスをウェブブラウザのアドレスが入力されている所に直接貼り付けて」

まず、既に書かれているアドレスを

アドレスはここです

全部消して

アドレスは直に消すことが出来ます。

自分が作ったアドレスを書き込もう(コピペで良いです)

アドレスは直に書き込むこともできます

デビー君「は、貼り付けたけど?」

ナックス「じゃあEnterキーを押して、そのアドレスに移動してみよう」

デビー君「えぇっ!?いいの!?」

ナックス「何がですか?」

デビー君「何がですか、って聞かれると困るけど……。あ、ほら。アドレスの作り方を間違えてるかもしれないし」

ナックス「大丈夫です。間違えてたら、『そんなアドレスないよ』っていうエラーが出るくらいです」

デビー君「そ、そうなの?」

ナックス「はい」

デビー君「……ぐ、グーグルにハッカー法で逮捕されない?」

ナックス「なんですか、ハッカー法って。男ならバシッといってください」

デビー君「よ、よーし……Enter!!」

成功すると、白黒の顔の壁紙画像の検索結果が表示されます

デビー君「で、出来てる……。白黒の顔の画像がずらっと並んでるよ!!」

ナックス「おめでとう!!これでlwp-requestでどんな感じのアドレスを指定すればいいかイメージはつかめたと思います。次回は検索キーワードのURLエンコード、URLデコードの仕方の解説!(40.Linuxのコマンドから行うURLエンコード、URLデコード)」

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