公開日

「たった一行でもっと高画質の画像を集める方法」のシェルスクリプトコード解説

たった一行でもっと高画質の画像を集める方法にあったシェルスクリプトのコード。

ソース

matome_url=$1
cnt=0
for j in {1..10}; do
  for i in `curl $matome_url\?page=$j | grep '_jWidgetData' | sed s/\&quot\;/\"/g | grep -o "url\"\:\"[^\"]*" | cut -d \" -f 3 `; do
    curl -o $2_$cnt.jpg $i
    cnt=`expr $cnt + 1`
  done
done

その中の1行、このコードの意味がよくわからなかったので調べてみた。

$ curl $matome_url\?page=$j| grep '_jWidgetData' | sed s/\&quot\;/\"/g | grep -o "url\"\:\"[^\"]*" | cut -d \" -f 3

バラすと下記のようになる。

curl https://matome.naver.jp/odai/2128076173257260401 | # curlでデータ取得
grep '_jWidgetData' |                                   # _jWidgetData(画像URLが含まれている行)をgrep
sed s/\&quot\;/\"/g |                                   # " を " に変換
grep -o "url\"\:\"[^\"]*" |                             # url":"http:~ をgrepで抜き出す
cut -d \" -f 3                                          # ⇡をurl,:,http:~ の3つに分割してURLである3つめをcut!

出力結果

http://imgcc.naver.jp/kaze/mission/USER/20121010/16/112376/0/800x1126x5e102d37fb7211123e76a10.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121009/16/112376/1/1134x1548x5a8f6dace3e8a811e2caeb.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121222/16/112376/1/1152x1643xa71b65cd2d7ccfbd9ab501.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121022/16/112376/3/1470x2048xf91af81cc31725554aa6a1.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121223/16/112376/0/800x1067xce40c56866a0c1349b12d40.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121223/16/112376/1/800x1067xda8507d549b33034789af92.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121222/16/112376/0/1120x1680xe367f4d20758df59051771.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121218/16/112376/3/800x1200xf0e163f978b6340999a3627.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121220/16/112376/2/800x1149x504004fca0a43ae177b6b94.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121220/16/112376/1/909x1346xbc20b11869f748acf5dfcb9.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121220/16/112376/0/1066x1600x961a7ad10008867d0b4dc4.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121218/16/112376/1/703x1024x9c2810c4630ee676e88581e.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121215/16/112376/0/1226x1671x7380daad05950ec9f27aa1.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121218/16/112376/5/900x1280x8feb008f284438ae077799f.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121219/16/112376/0/799x1200xa22a34c73b464cc8c008887.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121219/16/112376/1/1200x800x596d41a8093f6663d2f51d5.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121216/16/112376/1/1500x2150x03d096234d12754f302cae.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121216/16/112376/0/683x1024x85dc2bb2d1fb1168ee2815c.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121214/16/112376/2/530x800x764574c1e912f5a46846fe56.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121214/16/112376/3/1280x1900x1ce4cf74906fd926a96f41.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121214/16/112376/0/900x1200xaca3d3fec5d57eec05c514a.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121214/16/112376/8/531x800xc515ec8798a9a4032daca277.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121207/16/112376/24/1033x1550x7c9c3cd8928ab0fbf19548.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121202/16/112376/1/1033x1550x6e0dc201a49d96d93740d1.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121208/16/112376/1/1033x1550xf007fde2a5343d1a0a55d1.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121209/16/112376/7/854x1280xeabf817b9a607e419f2472f.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121209/16/112376/6/896x1280x08f71b1d54aa4bd5c2ef364.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121209/16/112376/5/1280x1682xd727f8325bec6c51d47212.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121209/16/112376/4/800x1067xcec4822757324881e9978c9.jpg
http://imgcc.naver.jp/kaze/mission/USER/20121209/16/112376/3/1280x1920x0a1ca8283d2796132f14e3.jpg

この「◯◯で水着画像を集める」系のネタ元はPHPでしたが、シェルでもいけちゃうんですね。奥深い・・・