コマンドライン – Wget を使って (背景画像を使って) 単一のウェブページを保存する

command-line download mirroring web wget

参照用に単一のウェブページ(再帰的ではなく、サイト全体ではなく)を保存するためにWgetを使いたいと思っています。Firefoxの “Webページ、完全 “のように

最初の問題は、CSSで指定した背景画像をWgetに保存させることができないことです。仮に背景画像ファイルを保存できたとしても、–convert-links が CSS ファイル内の背景画像 URL をローカルに保存された背景画像を指すように変換してくれるとは思えません。Firefox にも同じ問題があります

2つ目の問題は、保存したいページに別のサーバーでホストされている画像(広告など)がある場合、これらの画像は含まれません。–span-hosts は、以下の行ではこの問題を解決していないようです

私が使っているのはwget --no-parent --timestamping --convert-links --page-requisites --no-directories --no-host-directories -erobots=off http://domain.tld/webpage.html

  79  user14124  2009-10-13


ベストアンサー

Wget の man ページ から

実際には、単一のページとそのすべての必要なものをダウンロードして(たとえそれらが別のウェブサイトに存在していても)、ローカルで適切に表示されることを確認するために、この著者は’-p’に加えていくつかのオプションを使用するのが好きです

wget -E -H -k -K -p http://www.example.com/

また、robots.txt-e robots=offを追加することを禁止している場合もあります

110  vvo  2010-04-30


wget コマンドには --mirror というオプションがあります

$ wget -r -N -l inf --no-remove-listing

また、ホスト名を含むサイトのディレクトリ階層全体を作成するために、-xを入れることもできます

しかし、wgetの最新版を使っていない人にはわからないかもしれません

7  Ernie Dunbar  2009-10-13


wget と Firefox は、ダウンロードされたファイルを含むリンクの CSS を解析していないように聞こえます。これらの制限を回避するには、可能な限り wget し、ダウンロードされたファイルの CSS や Javascript からのリンク抽出をスクリプト化して、見逃したファイルのリストを生成することができます。そして、そのリンクのリスト上で wget を二回目に実行することで、見逃したものを何でも取得することができます (URLのリストを指定するために -i フラグを使用してください)

Perlが好きなら、CPANにCSS::Parserモジュールがあり、この方法でリンクを抽出する簡単な手段を提供してくれます

wget は特定の html マークアップ (href/src) と css uris (url()) を解析して、どのページに必要なものを取得するかを決定しているだけであることに注意してください。取得できないサードパーティ製の画像が Javascript で追加されているかどうかを調べるために、DOM Inspector や Firebug のような Firefox アドオンを使ってみるとよいでしょう

2  quack quixote  2009-10-14


似たような目的でWebtographyを作ってみました。https://webjay.github.io/webtography/

Wgetを使用し、GitHubアカウントのリポジトリにサイトをプッシュします

私はこれらの引数を使用しています

--user-agent=Webtography
--no-cookies
--timestamping
--recursive
--level=1
--convert-links
--no-parent
--page-requisites
--adjust-extension
--max-redirect=0
--exclude-directories=blog
webtography/lib/wget.js at master · webjay/webtography
Scrape a website via Wget. Contribute to webjay/webtography development by creating an account on GitHub.

2  webjay  2016-03-24


タイトルとURLをコピーしました