WgetはWebページのすべてのリンクをダウンロードできません。

WgetはWebページのすべてのリンクをダウンロードできません。

このウェブサイトからすべてのPDFファイルをダウンロードしたいと思います。

http://www.math.utsc.utoronto.ca/b41/

私が実行したコマンドは次のとおりです。

wget -r -A "*.pdf" "http://www.math.utsc.utoronto.ca/b41/"

ところで、ウェブサイトに行ってみると、課題1~10を含む「課題」タブがありますが、どういう理由であるのか、その課題はダウンロードされませんか?それでも同じドメインにいますが、wgethttp://www.math.utsc.utoronto.ca/b41/a*.pdf1 <= * <= 10これをダウンロードしませんか?

答え1

以下のマンページからwget

WgetはHTTP URLを使用して特定のURLからHTMLまたはCSSを検索および解析し、hrefやsrcなどのタグまたは「url()」機能表記を使用して、指定されたCSS URI値を介して文書が参照するファイルを検索します。します。新しくダウンロードしたファイルがtext / html、application / xhtml + xml、またはtext / cssタイプの場合は解析され、さらに追跡されます。

つまり、ファイルの場所がページソースコードに明示的に記録されていないが、href一部のJavaScriptスニペットによって生成された場合、またはサーバーに一部のリクエストを送信した後に返された場合(たとえば、PHPから返された場合)、保存されていても同じドメインでもとして多くのことはできません。srcwget

答え2

考慮すべき1つの要因は、wgetがドメイン名の違いを別々のドメインとして扱い、デフォルトで提供されたドメインから逸脱しないことです。

つまり。ダウンロードをリクエストすると、https://example.com/somefile.htmlフォームの内部リンクに従わないでください<a href="https://www.example.com...">

この場合、以下を提供する必要があります。--span-hosts --domains=example.com

www.example.comこの場合、自動的に一致するように見えるため、ドメインパラメータを明示的に提供する必要はないようです。

関連情報