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