HTML形式のログを定期的に取得しているのですが、その時に使用しているサンプルプログラムを公開します。
Javaの実行環境が整っているWindowsOSで、LogGet.java と LogGet.bat を同じディレクトリに置き、LogGet.bat を実行すると、「html」フォルダが出来上がりそこにHTMLファイルが格納されます。
取得するHTMLファイルのURL、及びHTMLファイルのローカルでのファイル名は、LogGet.java を修正して変更します。
HTMLファイルの文字コードは「EUC-JP」を前提としていますので、他の文字コードが使用されている場合は LogGet.java の「EUC-JP」の箇所を適宜修正してください。
【サンプルコード】
・LogGet.java
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62  | 
						import java.io.File; import java.io.InputStream; import java.io.InputStreamReader; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.net.URL; public class LogGet {     public static void main(final String[] args){         /*  利用者がいじる所はここです。          *   ・"~.html"となっている箇所は取得ログのファイル名です。          *    適宜書き換えてください。          *     ※ファイル名が被った場合はログを取得しません          *   ・取得する必要が無いログはコメントアウトしてください。          */          //LogGet("ログ1","http://hoge.html","ほげ.html");           LogGet("ログ2","http://fuga.html","ふが.html");     }     public static void LogGet(String logName, String logUrl, String fileName){         File f = new File("html\\" + fileName);         if(f.exists()){             System.out.println                 ("重複したファイル名 " + fileName + " が与えられたため " +                  logName + " は取得しません。");             return;         }         URL url = null;         InputStream is = null;         InputStreamReader isr = null;         FileOutputStream fos = null;         OutputStreamWriter osw = null;         try {             url = new URL(logUrl);             is = url.openStream();             isr = new InputStreamReader(is,"EUC-JP");             fos = new FileOutputStream("html\\" + fileName);             osw = new OutputStreamWriter(fos,"EUC-JP");             while(true) {                 int i = isr.read();                 if (i == -1) {                     break;                 }                 osw.write((char)i);             }             System.out.println                 (logName + " をファイル名 " + fileName + " で取得しました。");         } catch (Exception e) {             System.out.println(e.getMessage());         } finally {             try {                 isr.close();                 is.close();                 osw.close();                 fos.close();             } catch (Exception e) {                 System.out.println(e.getMessage());             }         }     } }  | 
					
・LogGet.bat
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  | 
						@echo off rem JDKをインストールしていない場合はインストールしてください。 rem https://qiita.com/ko2a/items/69fa8a5366d7449500ca rem 都度コンパイルを実施(javaをスクリプト言語っぽく利用) if exist .\LogGet.class (del .\LogGet.class) javac -encoding UTF-8 .\LogGet.java rem 処理実行 if not exist html\ (mkdir html) java -classpath . LogGet rem 処理終了 del .\LogGet.class pause exit  | 
					
いかがでしたでしょうか。
定期的にHTMLファイルを取得する機会があったので、javaでプログラムを作ってみました。
複雑なWebページを取得するには不向きですが、単純なHTMLで書かれたページを定期的に取得する時に便利だと思います。
便利な機能を見つけたら、また紹介したいと思います!
  
  
  
  

コメント