私は、ファイルをダウンロードしようとするwget
とcurl
、それは(禁断の)403エラーで拒否されます。
同じマシンのWebブラウザを使用してファイルを表示できます。
http://www.whatsmyuseragent.comで取得したブラウザーのユーザーエージェントで再試行します。私はこれをします:
wget -U 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...
そして
curl -A 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...
しかし、それはまだ禁止されています。403には他にどのような理由がありますか?wget
およびcurl
コマンドを変更してそれらを克服する方法はありますか?
(これはファイルを取得できることではなく、ブラウザから保存するだけでよいことを知っています。コマンドラインツールの動作が異なる理由を理解することです)
更新
この質問に対する素晴らしい回答をありがとう。私が遭遇した特定の問題は、サーバーがリファラーをチェックしていたことです。これをコマンドラインに追加すると、curl
とを使用してファイルを取得できますwget
。
リファラーをチェックしたサーバーは、302を介してチェックをまったく実行していない別の場所にバウンスしたため、そのサイトの1 curl
つまたは複数wget
のサイトが正常に機能しました。
誰かが興味を持っているなら、私はこのページを読んで埋め込まれたCSSについて学び、サイトのCSSを例として見ようとしていたので、これが起こりました。私が問題を抱えていた実際のURLはこれであり、curl
私はでした
curl -L -H 'Referer: http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css
そして、wgetは
wget --referer='http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css
とても興味深い。