ブラウザは、インターネットのサイトにアクセスして、HTMLや画像等のコンテンツをもらって、表示しています。
 ただし、ほとんどの場合、欲しいのは文章だったり、しかも、ページが跨ったりしていると、自分でいちいちアクセスするのは面倒です。
 フリーソフト等でも、指定したサイトを回って自動でダウンロードしてくれるWeb巡回ソフトがあったりします。
 今回はインターネットのサイトにアクセスして、HTMLを取得してみます。
インターネットのサイトからHTMLを取得するサンプル
「http://www.example.com」のページをUTF-8形式で取得します。
 取得したコンテンツ(HTML)は、標準出力してみます。
| 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 | import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.List; public class HtmlDownloadTest {     public static void main(String[] args) {         try {             //ダウンロードする対象のURLと文字コード             String url = "http://www.example.com";             String charset = "UTF-8";             //HTMLを取得             HtmlDownloadTest downloader = new HtmlDownloadTest();             List<String> contents = downloader.read(url, charset);             //取得したHTMLを出力             for(String str : contents) {                 System.out.println(str);             }         }catch(Exception e) {             e.printStackTrace();         }     }     public List<String> read(String url,String charset) throws Exception {         URLConnection conn = new URL(url).openConnection();         try(InputStream is = conn.getInputStream();             InputStreamReader isr = new InputStreamReader(is,charset);             BufferedReader br = new BufferedReader(isr)) {             ArrayList<String> lineList = new ArrayList<String>();             String line = null;             while((line = br.readLine()) != null) {                 lineList.add(line);             }             return lineList;         }     } } | 
実行結果
「http://www.example.com」のページが標準出力されます。
| 1 2 3 4 5 6 7 | <!doctype html> <html> <head>     <title>Example Domain</title>     ~~(中略)~~ </body> </html> | 
サンプルの解説
URLConnectionを使うことで、サイトからの入力ストリームを取得することができます。
 このサンプルで取得したHTMLを、ファイルへ保存することで、HTMLをひたすらダウンロードするアプリケーションを作成することができます♪
 でも、このサイトはダウンロードせずブラウザで見てくださいw
取得したHTMLをファイルへ保存するには・・?
基本的なファイルの読み書き方法は、こちらを見てください。









