その際の条件は以下のようになっています。
(1)ファイルのURLは常に固定: (例)http://xxx.xxx.xxx/data.txt
(2)しかし、同ディレクトリ下のindex.html(http://xxx.xxx.xxx/index.html)をブラウザで開いた時に表示される form ボタンをクリックしないと、(1)のファイルが最新のものになっていない。form ボタンは、<input type=button onclick="submit()"> と記述されている。
さて、コマンドラインから <input type=button onclick="submit()"> ボタンを押したのと同等のことを行うことは可能でしょうか?ちなみに、submit()の実装とかは、外から全然わかりません。
JavScriptなので分かると思います。
1号さま、
ソースには<script>なるタグがどこにもないです。
ですので、このページが JavaScript を使用しているのかどうかも私には分からないのですが、<input onclick="submit()"> というタグがあるという情報のみから JavaScript を使用しているとわかるものなのでしょうか? 何か CGI 的なものではなく?
2号さま、
index.html のform をsubmit したときの URLがわからないです。
まず、"form を submit したとき" というのは、ボタンをクリックした後のことを指されていると思いますが、ボタンをクリックしてもページそのものは何も変わらず、ブラウザの URL を記入・表示するツールバー内に表示されている URL の文字列自体も何も変化しません。
ボタンをクリックすると何かサーバ上でプログラムが実行されてデータファイルが更新されるという処理が行われているらしいのですが、URLそのものは変化しないのです。
分かります。
モダンなブラウザだと開発者向けのツールが内蔵されていて、どのようなURLにリクエストを出したかをたどることができます。
アドレスバーに表示されているURLが変わらなくてもサーバにリクエストを出す方法は色々とありますので。
回答、どうもありがとうございます。
具体的に"どのブラウザ"の"どのバージョン"で"どのような設定"にすれば、当該情報がたどれるのか私には見当がつかないのですが調べてみます。ありがとうございます。
もし、お手数でなければご教授をお願いしますが、並行してこちらでも調べてみます。
たとえば、
(1)ボタンのクリックは同じURLへのGET
(2)ただし、クリック経由の場合だけファイル更新の処理がされる
(3)単にそのURLをGETした場合にはファイル更新の処理は行われない
という実装になっている場合です。
そのような実装が実際に可能なのかどうか知識の無い私には見当がつきませんが、例えば index.html がCGIのスクリプトになっていて、単なる GET なのか クリック経由の GET なのかを判別してファイル更新の処理を行うかどうかを決定する、みたいなことはありうるでしょうか?
そういった場合、普通はクリック経由の場合は、POST にしてURLの?の後に何かクエリをつけると思うのですが、そのようなクエリは特にツールバーには表示されないです(これは私の使用しているブラウザの問題かもですが、とにかくまずは適切なブラウザをさがします)。
すいません。クエリによってパラメータを渡すのは GET でした。訂正致します。
たとえば Firefox の場合は、アドオンのHttpFox というのが使えるみたいでした。
このアドオンをインストールすると、URLにリクエストを出すたびに、
"送受信バイト数"、"メソッド"、"ステータス"、"タイプ"、"URL"
が逐一表示されるようになったので調べてみると、
(1)単に当該URLをリクエストした場合 -> 当該URLに GET する
(2)クリックする -> URL は全く同じだがメソッドが POST (しかし中身はない?)
だということが判明しました。
どうやら、URLは同じだけど、"GET" なのか "POST" なのかで、処理をわけているようです。
だいぶ前進しました。どうもありがとうございます。
解決しました!!
クリックした場合は、同じURLだけどメソッドが POST で、中身は "BuildDataFile=TRUE" というものでした(先のコメントでは中身はないと言ってましたが私の見方が悪いせいでした...)。そこで、
wget --post-data='BuildDataFile=TRUE' http://xxx.xxx.xxx/
をしてから、
wget http://xxx.xxx.xxx/data.txt -O data.txt
などとすると、最新のデータをコマンドラインから取得することに成功しました!!
どうも、ありがとうございました。
これで、定期的に自動で最新ファイルを取得することができるようになりました。