お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2016-05-20 15:57:14

hoge
メンバ
登録日: 2016-05-20

wgetコマンドを使用して、ウェブサイトからhtmlファイルを取得したいと考えています。

wgetコマンドを使用して、ウェブサイトからhtmlファイルを取得したいと考えています。

wgetコマンドについて質問します。wget -r -l1 http://example.com

と端末に入力し実行した際、
カレントディレクトリにexample.comというディレクトリが作成され、
作成されたexample.comの中にhttp://example.comのhtmlファイルが入るようになると思うのですが、

カレントディレクトリに作成されるディレクトリを example.com ではなく、

wgetコマンドを実行した「年_月_日_時間:分:秒+文字」

にするにはどのようにコマンドを実行すればいいでしょうか。

オプションの -r と -l1 を使ったままでそのようなことは可能でしょうか。

(例)2016年の05月30日の21:30:00に実行した際、

カレントディレクトリに 2016_05_30_20:30:00_田中

という感じです。

_田中 は文字の部分です。

さらに、これをシェルスクリプトで書くとしたらどのようになりますか。

また、私が勘違いしている点がありましたらご指摘おねがいします。

環境はubuntu15.10のbashを使用しています。

初心者のため質問に不明な部分があるかもしれませんが、どなたかご回答よろしくお願いします。

オフライン

 

#2 2016-05-20 23:04:00

favicon.ico
メンバ
登録日: 2010-09-06

Re: wgetコマンドを使用して、ウェブサイトからhtmlファイルを取得したいと考えています。

コード:

#!/bin/bash

if [ $# -ne 1 ]; then
  myname=$(basename $0)
  echo "usage: $myname {postfix}" 1>&2
  exit 1
fi

dest_dir=$(date "+%Y_%m_%d_%H:%M:%S")_$1
wget -q -r -l 1 -nH -P ${dest_dir} http://www.example.com/

$ ./hogehoge 田中

みたいな?

オフライン

 

#3 2016-05-24 15:22:58

hoge
メンバ
登録日: 2016-05-20

Re: wgetコマンドを使用して、ウェブサイトからhtmlファイルを取得したいと考えています。

favicon.icoさん
はじめまして。
素早くご回答いただきありがとうございます。

早速実行してみようとしたのですが、
私には少し難しかったため、うまくできませんでした。

やったことを書きますので、間違っている部分や問題点があればご指導よろしくお願いします。

~/Desktopに/hogeディレクトリを作成しました。
/hogeディレクトリに移動して、
hogehoge.shという名前で

if [ $# -ne 1 ]; then
  myname=$(basename $0)
  echo "usage: $myname {postfix}" 1>&2
  exit 1
fi

dest_dir=$(date "+%Y_%m_%d_%H:%M:%S")_$1
wget -q -r -l 1 -nH -P ${dest_dir} http://www.example.com/

と入力し保存、

hogehoge.shがあることを確認し、

chmod +x hogehoge.shで実行できるようにし、

./hogehoge.sh
とだけ入力した時は
usage: hogehoge.sh {postfix}
と表示されますが、

./hogehoge.sh 田中
でEnterキーを押すと
カーソルが次の行に行き
点滅しました

Ctrl+Cで中止し、
hogeディレクトリ(カレントディレクトリ)の中身
を確認したところ
hogehoge.sh
がありました。

hogehoge.sh によって作成されたディレクトリはどこにあるのでしょうか?


図々しいお願いですが、
コードにコメント文をつけていただけるとありがたいです。

hogehoge.sh実行に田中を引数に使っているようになっていると思うのですがこの解釈で大丈夫でしょうか?
田中を引数に使わず
./hogehoge.sh
だけで
2016_05_30_20:30:00_田中ディレクトリを作成し
その中にhtmlを保存するにはコードをどのように変更すればいいでしょうか?
また、wgetコマンド1行だけで済ませるとしたらどのように入力すればいいでしょうか?

環境はubuntu15.10です。
長文大変失礼しました。
何卒よろしくお願いします。

オフライン

 

#4 2016-05-24 16:54:04

ry
メンバ
登録日: 2008-07-30

Re: wgetコマンドを使用して、ウェブサイトからhtmlファイルを取得したいと考えています。

提示のスクリプトを何も考えずにコピペしました?
それだと存在しない http://www.example.com/ からダウンロードしようとして、タイムアウトまで無反応になります。

スクリプトにせず1行で済ますなら、これでいいはず。
「田中」のところはディレクトリ名として有効な文字列であれば好きに変えてかまいません。
また http://www.example.com/ は実在の URL に変えてください。

wget -q -r -l 1 -nH -P "$(date '+%Y_%m_%d_%H:%M:%S')_田中" http://www.example.com/

オフライン

 

#5 2016-05-25 13:38:38

hoge
メンバ
登録日: 2016-05-20

Re: wgetコマンドを使用して、ウェブサイトからhtmlファイルを取得したいと考えています。

ryさん
大変勉強になりました。
ありがとうございます。

おっしゃるとおり、コピペしていました。

タイムアウトまで無反応になることは知りませんでした。

実在するURLに変更したところ、スクリプト、コマンド両方ともうまく行きました。

別のパソコンでスクリプト、コマンドを

http://www.example.com/

で実行したところ、すぐに反応したので不思議に思っていました。

なぜでしょう…。
パソコンの性能によるものなのでしょうか?

どなたかご存知の方がいらっしゃったらご教授ください。
よろしくお願いいたします。

オフライン

 

#6 2016-05-25 14:00:42

hoge
メンバ
登録日: 2016-05-20

Re: wgetコマンドを使用して、ウェブサイトからhtmlファイルを取得したいと考えています。

投稿後、読んでいたところ、分かりにくかったため
補足いたします。

実行したコマンドは

ryさん による投稿:

wget -q -r -l 1 -nH -P "$(date '+%Y_%m_%d_%H:%M:%S')_田中" http://www.example.com/

で実行したスクリプトは

favicon.icoさん による投稿:

コード:

#!/bin/bash

if [ $# -ne 1 ]; then
  myname=$(basename $0)
  echo "usage: $myname {postfix}" 1>&2
  exit 1
fi

dest_dir=$(date "+%Y_%m_%d_%H:%M:%S")_$1
wget -q -r -l 1 -nH -P ${dest_dir} http://www.example.com/

です。

どちらとも

年_月_日_時間:分:秒_田中

ディレクトリが作られ、
中身に

index.html

が作成されました。

オフライン

 

Board footer

Powered by FluxBB