web-dev-qa-db-ja.com

なぜwgetは再帰的にダウンロードしたくないのですか?

コマンド

$ wget -r http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html

ダウンロードのみindex.htmlおよびrobots.txt同じディレクトリ内の別のページへのリンクがあっても、私にとっては。例えば

<A HREF="viewp.html">Viewpoint specification</A>

なぜwgetはそれを無視するのですか?

7
foobar

一般に、自分の根本的な無知を、完全に無知である技術の欠陥と間違えることは、技術の誤りです。

私はこれをテストし、すぐに問題を見つけました:

明示的に指示されない限り、wgetはrobots.txtを尊重します。

wget -r http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html
--2015-12-31 12:29:52--  http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html
Resolving www.comp.brad.ac.uk (www.comp.brad.ac.uk)... 143.53.133.30
Connecting to www.comp.brad.ac.uk (www.comp.brad.ac.uk)|143.53.133.30|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 878 [text/html]
Saving to: ‘www.comp.brad.ac.uk/research/GIP/tutorials/index.html’

www.comp.brad.ac.uk/research/GI 100%[======================================================>]     878  --.-KB/s   in 0s     

2015-12-31 12:29:53 (31.9 MB/s) - ‘www.comp.brad.ac.uk/research/GIP/tutorials/index.html’ saved [878/878]

Loading robots.txt; please ignore errors.
--2015-12-31 12:29:53--  http://www.comp.brad.ac.uk/robots.txt
Reusing existing connection to www.comp.brad.ac.uk:80.
HTTP request sent, awaiting response... 200 OK
Length: 26 [text/plain]
Saving to: ‘www.comp.brad.ac.uk/robots.txt’

www.comp.brad.ac.uk/robots.txt  100%[======================================================>]      26  --.-KB/s   in 0s     

2015-12-31 12:29:53 (1.02 MB/s) - ‘www.comp.brad.ac.uk/robots.txt’ saved [26/26]

FINISHED --2015-12-31 12:29:53--

ご覧のとおり、wgetは要求された内容を完全に実行しました。

この場合、robots.txtは何と言っていますか?

cat robots.txt
User-agent: *
Disallow: /

したがって、このサイトでは、ロボットがデータをダウンロードすることを望んでいません。少なくともrobots.txtを読み取ってフォローしているロボットは、通常、これは検索エンジンでインデックスに登録されたくないことを意味します。

wget -r -erobots=off  http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html

ここで、wgetが単純に強力すぎて学習できない場合でも、問題ありませんが、wgetに問題があると誤解しないでください。

ただし、サイトを再帰的にダウンロードすることにはリスクがあるため、制限を使用してサイト全体を取得しないようにすることが最善の場合があります。

wget -r -erobots=off -l2 -np  http://www.comp.brad.ac.uk/research/GIP/tutorials/index.html
  • -l2は最大2レベルを意味します。 -lは、レベルを意味します。
  • -npは、開始ページからツリー内ではなく、上に移動しないことを意味します。 -np意味:親なし。

それは単にターゲットページに依存します。たとえば、取得するものと取得しないものを正確に指定したい場合があります。たとえば、この場合、.html/.htm拡張子のデフォルトのみを取得し、グラフィック、pdf、music/videoは取得しません。拡張子。 -Aオプションを使用すると、取得する拡張タイプを追加できます。

ちなみに、確認したところ、私のwgetバージョン1.17は2015年のものです。使用しているバージョンがわからない。 Pythonちなみに90年代にも作成されたと思うので、あなたの推論では、pythonも90年代からのジャンクです。

wget --helpはwgetのマニュアルページと同様に非常に強力で機能が豊富なので、誰かがそれを読みたくない理由は理解できますが、最も一般的なwgetアクションの方法を説明するオンラインチュートリアルがたくさんあります。

14
Lizardx

上記と同じ答えですが、不必要な独善性はありません。

wgetはサイトのrobots.txtを尊重し、robots.txtが許可しない場合は再帰的にダウンしない場合があります。この動作を無効にするには、フラグ-erobots=offを追加します。

2
jojman