
サイトをミラーリングしようとしていますが、リンクされた 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 オプションがあります。ただし、これはダウンロード元のサーバーが正しいヘッダー情報を送信するかどうかに完全に依存します。