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


14

基本的に、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が、それでもファイルをダウンロードし、それらを拒否します(帯域幅、CPU、およびサーバー負荷の無意味な浪費です!)。


2
これまでに試したコマンドは何ですか?ファイルの命名に一貫性がある場合は、-Rフラグを使用できるはずです。または、-ignore-tagsフラグを使用して、scriptタグとimgタグを無視することもできます。
アーニー14年


--accept = htmlを使用してみましたが、CSSファイルをダウンロードしてから削除します。それらがダウンロードされるのを防ぎたいです。ただし、ヘッダーのリクエストは問題Length: 558 [text/css]ありません。たとえば、不要なファイルに気づきます。ヘッダーtext/htmlが返らない場合にリクエストを停止できれば、私は大喜びします。
ネイサンJB 14年

回答:


13

@ernieのコメントは--ignore-tags私を正しい道に導きます!私が見上げたとき--ignore-tagsman、私は気づきました--follow-tags

設定は、--follow-tags=a私はスキップすることができimglinkscript、など

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

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


5

オプションの追加についてはどうですか:

--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"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.