画像を自動的に取得するプログラムを描こうとしているのですが、wgetの挙動でつまづいてしまいました。
shellスクリプトファイル?()内に wget コマンドの記載をしたのですが、どうしても、エラーが出てしまい取得することができません。
1 #!/bin/sh 2 3 keyword=$1 4 5 if [ -z $keyword ] 6 then 7 echo "put keyword like this" 8 echo "$ $0 \"ペンギン 空\" " 9 exit 10 fi 11 12 echo ${keyword} 13 keyword=`echo $keyword | nkf -wMQ | tr = %` 14 echo $keyword 15 url="\"http://www.heso.blue/?text\=${keyword}\&page\=1\"" 16 #url=`echo \'$url\'` 17 echo $url 18 wget -nd -r -l 2 -H -P ./get-images/ -A jpeg,jpg,bmp,gif,png $url
#結果 (引数に "空" を渡した場合) 空 %E7%A9%BA "http://www.heso.blue/?text=%E7%A9%BA&page=1" "http://www.heso.blue/?text=%E7%A9%BA&page=1": Scheme missing.
スクリプトないでエンコードさせているのは、日本語表記ではスクリプト内から通らなくなってしまうのかと思ってしたのですが、あまり効果はなかったみたいです。
下記のように、いくつか記述を変えて試してみたのですが、同じようにダメでした。
wget -nd -r -l 2 -H -P ./images/ -A jpeg,jpg,bmp,gif,png "http://www.heso.blue/" #or エスケープ処理して書いてもだめ。 wget -nd -r -l 2 -H -P ./images/ -A jpeg,jpg,bmp,gif,png ¥"http://www.heso.blue/¥" #or どこかでみた二重エスケープも試したけどだめ。 wget -nd -r -l 2 -H -P ./images/ -A jpeg,jpg,bmp,gif,png "¥"http://www.heso.blue/¥"" #or urlがそのまま書かれたものでさえも動かない。 wget -nd -r -l 2 -H -P ./images/ -A jpeg,jpg,bmp,gif,png "http://www.heso.blue/?text=空&page=1"
スクリプト内に記載しても動かないのですが、普通にコマンドとして打つと正常に取得できます。
#コマンドで下記を直接叩くと正常に動く wget -nd -r -l 2 -H -P ./images/ -A jpeg,jpg,bmp,gif,png "http://www.heso.blue/?text=空&page=1"
どうしてスクリプト内に記載すると動かなくなってしまうのでしょうか。
どなたか助力お願いします。
また、参考に下記のサイトをみましたが、解決には至りませんでした。
http://capslook.hatenablog.com/entry/2015/07/12/235014
http://www.garunimo.com/program/linux/linux52.php
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。