12. HTTPサーバからHTMLを読み出す GetHtml.java
- 2006.08.18
- Java
Webサーバからhtmlドキュメントを取得するプログラム。
GetHtml.java
// // GetHtml.java // // HTTPサーバからHTMLを読み出す // // java GetHtml (URL) // import java.net.URL ; import java.io.DataInputStream ; public class GetHtml { public static void main( String[] args ) { byte[] buffer = new byte[4096] ; // 配列の定義 int n ; URL url ; // 引数のチェック if ( args.length <= 0 ) { System.err.println( "URLを指定してください!" ) ; System.exit( 1 ) ; } // HTMLを読み出す try { url = new URL( args[0] ) ; DataInputStream htmlStream = new DataInputStream( url.openStream() ) ; while ( (n = htmlStream.read(buffer)) > 0 ) { System.out.write( buffer, 0, n ) ; } } catch( Exception e ) { System.err.print( e ) ; e.printStackTrace() ; System.exit( 1 ) ; } } }
■実行
$ java GetHtml http://www.yahoo.co.jp/ > yahoo.txt
■確認
取得したyahoo.txtをテキストエディタで開くか、catコマンドで確認する。
catコマンドを使うときは、ターミナルの設定を日本語(EUC)にしておくと文字化けせずに確認できる。
$ cat yahoo.txt <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <!--京--> <title>Yahoo! JAPAN</title> <meta name="description" content="日本最大級のポータルサイト。...
■確認その2
Jpeg画像を取得してみる。
$ java GetHtml http://www.yahoo.co.jp/xxxxxxx.jpg > test.jpg
同様に、png, gif画像もダウンロードできる。
openStream()メソッドは、URLによって参照されるサーバに接続して、ハンドシェイクを実行し、InputStreamを返してくれる。
InputStreamは、URLが参照するファイルの生データを読み取ることができる。
ということで、HTMLファイルでも画像ファイルでも読み取って保存できた、という訳。
-
前の記事
お役立ちリンク集 | Solaris 2006.08.17
-
次の記事
トラブル | ハードディスクがヤバイかも 2006.08.20