59

wget コマンドを使用しようとしています:

wget -p http://www.example.com 

メインページのすべてのファイルを取得します。一部の Web サイトでは機能しますが、ほとんどの場合、index.html のみをダウンロードします。wget -r コマンドを試しましたが、うまくいきません。ページ上のすべてのファイルを取得する方法を知っている人、またはページ上のファイルと対応する URL のリストを教えてください。

4

8 に答える 8

103

Wget は Web サイト全体をダウンロードすることもできます。ただし、これはサーバーに大きな負荷をかける可能性があるため、wget は robots.txt ファイルに従います。

 wget -r -p http://www.example.com

-p パラメータは、イメージを含むすべてのファイルを含めるよう wget に指示します。これは、すべての HTML ファイルが本来あるべき姿になることを意味します。

wget が robots.txt ファイルに従わないようにするにはどうすればよいでしょうか。次のようにコマンドに -e robots=off を追加するだけです。

 wget -r -p -e robots=off http://www.example.com

多くのサイトではサイト全体をダウンロードできないため、ブラウザーの ID を確認します。これを回避するには、上で説明したように -U mozilla を使用します。

 wget -r -p -e robots=off -U mozilla http://www.example.com

多くの Web サイト所有者は、サイト全体をダウンロードするという事実を好まないでしょう。大量のファイルをダウンロードしていることをサーバーが確認すると、自動的にブラック リストに追加される場合があります。これを回避するには、ダウンロードするたびに数秒待ちます。wget を使用してこれを行う方法は、 --wait=X を含めることです (X は秒数です)。

パラメータ --random-wait を使用して、wget が待機する秒数をランダムに選択できるようにすることもできます。これをコマンドに含めるには:

wget --random-wait -r -p -e robots=off -U mozilla http://www.example.com
于 2012-06-20T17:10:23.453 に答える
39

まず、質問を明確にするために、その目的はindex.html、そのページのすべての必要な部分 (画像など) をダウンロードすることです。オプションは-pと同等--page-requisitesです。

ページの必要条件が常にダウンロードされるとは限らない理由は、元のページとは異なるドメイン (CDN など) でホストされることが多いためです。デフォルトでは、wget は他のホストへのアクセスを拒否するため、オプションでホスト スパニング--span-hostsを有効にする必要があります。

wget --page-requisites --span-hosts 'http://www.amazon.com/'

index.htmlすべてのページ要件をローカル バージョンからロードしてロードできるようにする必要がある場合は、この--convert-linksオプションを追加して、imgsrc 属性の URL (たとえば) がローカル バージョンを指す相対 URL に書き換えられるようにする必要があります。

必要に応じて、オプションを追加してすべてのファイルを単一の「ホスト」ディレクトリに--no-host-directories保存するか、オプションを追加してすべてのファイルを単一のフラット ディレクトリに保存することも--no-directoriesできます。

を使用--no-directoriesすると、現在のディレクトリに大量のファイルがダウンロードされるため、--directory-prefix.

wget --page-requisites --span-hosts --convert-links --no-directories --directory-prefix=output 'http://www.amazon.com/'
于 2014-08-22T09:45:48.077 に答える
3

このスレッドが古いことは知っていますが、Ritesh が言及していることを試してみてください。

--Cookie なし

それは私のために働いた!

于 2014-03-10T05:54:01.383 に答える