0

入力として一連の URL を受け取り、ページをロードして、リダイレクトが実際に発生しているかどうかを確認し、最終的な URL をログに記録するスクリプトを開発しようとしています。私はこれを使いました

REDIRECT=`curl -w "%{redirect_url}" --user-agent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0" http://m.cnbc.com`
echo "redirects to: ${REDIRECT}"

このコードは正常に動作しています。しかし、URL をhttp://www.cnbc.comに変更するとすぐに、スクリプトはページのソース コードの内容をターミナルに出力します。http://www.cnbc.comの場合はリダイレクトがないのに対し、http://m.cnbc.comの場合はユーザー エージェントがデスクトップ タイプであるためリダイレクトがあるため、これが発生していると想定しています。

4

1 に答える 1

1

-o /dev/null2 番目のケースで出力をドロップするために追加し-silent、curl が進行状況を表示しないようにします。

# REDIRECT=`curl -w "%{redirect_url}" --user-agent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0" -o /dev/null -silent http://m.cnbc.com`
# echo "redirects to: ${REDIRECT}"
redirects to: http://www.cnbc.com/
# REDIRECT=`curl -w "%{redirect_url}" --user-agent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0" -o /dev/null -silent http://www.cnbc.com`
# echo "redirects to: ${REDIRECT}"                                                
redirects to: 
于 2013-04-26T19:20:01.880 に答える