wgetを使用してディレクトリとサブディレクトリをダウンロードする


1

Webにフォルダービューのあるフォルダーがあります(http://example.com/folder1/folder2/

/ folder2には、pdfファイルが含まれる複数のフォルダーがあります。wgetを使用して、すべてのサブフォルダーとファイルを含む/ folder2のすべてのコンテンツをssh経由でサーバーにダウンロードしたい。次のことを試しましたが、index.htmlとrobots.txtファイルのみを取得し続けています。

[root@myserver downloads]# wget -r --no-parent --reject "index.html*" http://www.example.com/folder1/folder2/
--2015-08-07 07:46:36--  http://www.example.com/folder1/folder2/
Resolving www.example.com... 192.168.1.1
Connecting to www.example.com|192.168.1.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `www.example.com/folder1/folder2/index.html'

    [         <=>                           ] 4,874,325    138K/s   in 37s     

2015-08-07 07:47:42 (128 KB/s) -     `www.example.com/folder1/folder2/index.html' saved [4874325]

Loading robots.txt; please ignore errors.
--2015-08-07 07:47:42--  http://www.example.com/robots.txt
Connecting to www.example.com|192.168.1.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 26 [text/plain]
Saving to: `www.example.com/robots.txt'

100%[======================================>] 26          --.-K/s   in 0s      

2015-08-07 07:47:42 (1.42 MB/s) - `www.example.com/robots.txt' saved [26/26]

Removing www.example.com/folder1/folder2/index.html since it should be rejected.

FINISHED --2015-08-07 07:47:42--
Downloaded: 2 files, 4.6M in 37s (128 KB/s)
[root@myserver downloads]# 

同様の失敗した結果で私が試した他のコマンド:

wget -m -p -E -k -K -np http://example.com/folder1/folder2/

wget -r http://example.com/folder1/folder2/ -nd -P /downloads -A PDF

最初に、正しいexample.comをダウンロードした場合.... example.comにはインデックスとロボット以外のコンテンツはありません
-Schwertspize

第二に、example.comをダウンロードしなかったのに、なぜそんなに変更するのですか
-Schwertspize

index.htmlファイルとrobots.txtファイル以外はダウンロードできないようです。/ folder2にはフォルダーとファイルがあります。実際にファイルをダウンロードするためにexample.comにアクセスする人がいないように、すべてを変更しました。
imbayago

-rおよび--no-parentが私のために働いたので、私は本当にあなたを助けることはできません
。...-Schwertspize

回答:


6

wgetを使用して、すべてのサブフォルダーとファイルを含む/ folder2のすべてのコンテンツをssh経由でサーバーにダウンロードしたい。

私はあなたが経由wgetでダウンロードしたいと思うとSSHはここでは問題ではありません。

Attilioによるソリューション

wget --mirror --page-requisites --adjust-extension --no-parent --convert-links \
    --directory-prefix=folder2 http://example.com/folder1/folder2/

編集

上記のソリューションは、Webサイトのミラーリングに適しています。申し訳ありませんが、回答が少々速すぎたため、PDFのミラーリングには最適ではありません。

wget -m -nH --cut-dirs=1 -np -R 'index.*' http://example.com/folder1/folder2/
  • -m--mirror:すべてを再帰的にダウンロードする
  • -nH--no-host-directories:ホスト名で指定されたディレクトリ内にデータを入れないでください
  • --cut-dirs=1:ローカル階層の作成時に最初のディレクトリをスキップします
  • -np--no-parent:親を取得しないでください!
  • -R--reject 'index.*':「index。*」のような名前のファイルを保存しません

役に立つかもしれません:-e robots=offwgetにを無視するように指示するrobots.txt

$ wget -m -nH --cut-dirs=4 -np --reject 'index.*' \
 http://ftp.lip6.fr/pub/linux/distributions/slackware/slackware64-current/source/a/bin/
$ tree
.
└── slackware64-current/
    └── source/
        └── a/
            └── bin/
                ├── banners.tar.gz
                ├── bin.SlackBuild
                ├── debianutils_2.7.dsc
                ├── debianutils_2.7.tar.gz
                ├── fbset-2.1.tar.gz
                ├── scripts/
                   ├── diskcopy.gz
                   └── xx.gz
                ├── slack-desc
                └── todos.tar.gz

代替案

これはあなたが尋ねたものではありませんが、私は個人的lftpにそのために使用したいです:

lftp -c "open http://example.com/folder1/; mirror folder2"

lftオプションを使用しました。それは完璧に機能しているようです。wgetオプションは機能しませんでした。index.htmlとrobots.txtファイルのみをダウンロードし続けました。ありがとうございました。
imbayago

lftpの場合は+1。これは、jenkinsプラグインをミラーリングする唯一の方法です。wgetindex.html の拒否を使用すると、hpiファイルのみでフォルダー構造が作成されます。
n002213f
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.