より正確には、コンテンツは階層的に編成されていますが、URLはそうではありません。URLスペースはフラットで、すべてが同じディレクトリにあるように見えます。(実際には、おそらくディレクトリはありません。他のデータベースから何かが出てきていると思いますが、ここでは関係ありません。)
したがって、MSDNの一部、たとえばNMakeマニュアルをダウンロードする場合は、特定のディレクトリの下にあるすべてのものを再帰的にダウンロードすることはできません。それがMSDNのすべてになるからです。ハードドライブと帯域幅には多すぎます。
ただし、DOM(HTML)を調べるスクリプトを記述して、CSSclass
属性toc_children
やのリンクなど、ドキュメントの特定のナビゲーションセクションに含まれるリンクのみをたどってダウンロードすることはできますが、はできtoc_siblings
ませんtoc_parent
。
必要なのは、次のように言うことができるダウンローダーです。
$webclient->add_links( $xpath_expression ); # or
$webclient->add_links( $css_selector );
Perl、LWP、およびXML :: LibXML(HTMLパーサー)を使用して何かをまとめるのはそれほど難しいことではありませんが、それを実行できるツールを知っているかもしれません。そのため、再発明する必要はありません。
Perlである必要はなく、他の言語でも問題ありません。また、この作業に必要な柔軟性を備えた既製のプログラムも問題ありません。