wget を使用して get パラメータで CSS をダウンロードする

wget を使用して get パラメータで CSS をダウンロードする

サイトをミラーリングしようとしていますが、リンクされた CSS には次の URL があります:http://127.0.0.1:2368/assets/css/screen.css?v=c44dc08367

wgetを使用してサイトをダウンロードすると、cssファイルがファイル名で保存されます。screen.css?v=c44dc08367

フラグを使用しようとしました--adjust-extensionが、ファイルは次のように保存されます。wget を使用するscreen.css?v=c44dc08367.cssのと同じように正しく保存することは可能ですかscreen.css?

私はdarwin12.5.0でビルドされたGNU Wget 1.14を使用しています。

編集: サイト全体をミラーリングしているのでファイル名を指定できないため、実際のコマンドは次のようになります。CSS リンクはページ内にあります (wget によって自動的に取得されます)

wget \
               --recursive \              # follow links to download entire site
               --page-requisites \        # grab everything: css / inlined images
               --no-parent \              # don't go to parent level
               --directory-prefix static \# download contents to static/ folder
               --no-host-directories \    # don't create domain named folder
               --adjust-extension \
               http://127.0.0.1:2368/

答え1

残念ながら、wget は、指示されない限り、ダウンロードするファイルの種類を推測しません。ファイルが画像、ドキュメント、圧縮ファイルなどであるかどうかは関係ありません。

ファイルは URL の末尾の文字列として保存されます。つまり、最後のスラッシュから URL の末尾までの文字列です。あなたの場合は、.css?v=c44dc08367 です。実際のファイル拡張子 (.css) の後の部分は URL に含まれていますが、これは HTTP クエリ パラメータです。ただし、wget の場合は、出力ファイル名が決定されます。

wget の出力ファイル名を指定する場合は、-O (大文字の O) オプションを追加します。

wget http://127.0.0.1:2368/assets/css/screen.css?v=c44dc08367 -O screen.css

最後に、適切なファイル名が設定される可能性がある --content-disposition オプションがあります。ただし、これはダウンロード元のサーバーが正しいヘッダー情報を送信するかどうかに完全に依存します。

ここからの抜粋:イメージを wget すると、イメージではなくファイルが返されるのはなぜですか?

関連情報