- 締切済み
wgetのコマンドでは不可能?
はじめまして、こんにちは。 wgetでpdfをダウンロードしようと試しているのですが、上手くいかず困っている為質問させて頂きます。「ttp://www.***.jp」というサイトの中の「/yuho/」より下のディレクトリにあるpdfファイルをダウンロードしようとしています。 ttp://www.***.jp ↓ ttp://www.***.jp/list/s1000.htm (s1000はs2000,s3000,,,s9000まである) ↓ ttp://www.***.jp/code/1301.htm (1301は1000,1001,,,9999まである) ↓ ttp://www.***.jp/yuho/1301.htm (1301は1000,1001,,,9999まである) ↓ ttp://www.***.jp/mark/20141114/S1003FL5.htm (20141114とS1003FL5はそれぞれ変動、このページにpdfファイルへのリンクがある) 上記の様にリンクが繋がっていて、 ディレクトリ「list」「code」「yuho」「mark」を取得対象とすれば良いのだろうと考え、wgetで -I オプションでディレクトリを list/,code/,yuho/,mark/と指定してみたのですが、上手く働きませんでした。 これはやはり階層構造になっていない為でしょうか? 余計なページのpdfをダウンロードせず、ディレクトリ「yuho」以下の階層にあるpdfをダウンロードする場合はどのようなwgetのコードを書けば良いのでしょうか? wgetでは不可能なのでしょうか? Irvineというダウンローダーで ttp://www.***.jp/yuho/1301.htm の「1301」の部分を1000から9999にして、ダウンロードする拡張子をpdfに指定、階層を2にして実行しましたがこれも失敗でした。 現在も色々調べておりますが、知恵が足りず大変困っております。 こういった分野に造詣が深い方がいらっしゃいましたら、どうかご教授下さい。 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
なにがどのように「うまくいかない」のでしょうか? > -I オプションでディレクトリを list/,code/,yuho/,mark/と指定してみた 再帰オプション -r と最大追跡深度を指定する -l は指定していますか? > 階層構造になっていない為でしょうか? http では、FTPのように「ファイル一覧」を取得することはできないので、 起点となるhtml→解析してリンクを抽出→抽出したリンクをダウンロード→ダウンロードしたファイルを解析してリンクを抽出→ .... という動きになります。--levelで指定するのは、この「深さ」です。 物理的には同階層でも、2度辿る必要がある場合は深さ2です。 質問にあった例では 5以上が必要です。 (↓の数 + mark/20141114/S1003FL5.htmからpdfを抽出→ダウンロード) 実際には深さ5に見えて実際には(自動リロード等が使われていて)もっと深いかもしれません。 また、そのようなデータ集では、ダウンロード制限をかけていることがあります。 (User-Agentで判断して、ロボットや自動ダウンロードツールを排除する、等) その場合は、wgetでは無理かもしれません。 マニュアル http://www.gnu.org/software/wget/manual/wget.html 日本語訳 http://quruli.ivory.ne.jp/document/wget_1.10/wget-ja.html