it-swarm-ja.com

wgetを使用してクロールしてHTMLファイルのみをダウンロードする方法(画像、CSS、JSは無視してください)

基本的に、サイト全体をWgetでクロールしたいが、他のアセット(画像、CSS、JSなど)をダウンロードしないようにする必要がある。 HTMLファイルのみが必要です。

Google検索 はまったく役に立ちません。

これが私が試したコマンドです:

wget --limit-rate=200k --no-clobber --convert-links --random-wait -r -E -e robots=off -U "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36" -A html --domain=www.example.com http://www.example.com

私たちのサイトは、ハイブリッドフラットPHPとCMSです。したがって、HTML「ファイル」は/path/to/page/path/to/page//path/to/page.php、または/path/to/page.html

私も含まれています-R js,cssしかし、それでもファイルはダウンロードされ、THENはそれらを拒否します(帯域幅、CPU、およびサーバーの負荷の無駄な無駄!)。

14
Nathan J.B.

--ignore-tagsに関する@ernieのコメントは、正しい道を私に導きます! man--ignore-tagsを検索したところ、--follow-tagsに気づきました。

--follow-tags=aを設定すると、imglinkscriptなどをスキップできます。

同じ答えを探している人にとっては制限が多すぎるかもしれませんが、私の場合は実際にうまく機能します(2、3ページ見逃しても大丈夫です)。

すべてのタグのスキャンを許可する方法を見つけたが、ダウンロード後にのみwgetがファイルを拒否しないようにした場合(ダウンロード前にファイル名またはヘッダーのコンテンツタイプに基づいて拒否する必要があります)、私は非常に喜んで受け入れます彼らの答え!

13
Nathan J.B.

オプションの追加について:

--reject '*.js,*.css,*.ico,*.txt,*.gif,*.jpg,*.jpeg,*.png,*.mp3,*.pdf,*.tgz,*.flv,*.avi,*.mpeg,*.iso'
--ignore-tags=img,link,script 
--header="Accept: text/html"
5
Spir