Java——獲取網頁內容並在本地生成HTML文件


使用java.net包下的URL類,可以將一個網頁(鏈接)封裝成一個URL對象。 
URL對象有一個openStream()方法,使用該方法可以獲取該網頁的輸入流,我們可以通過讀取輸入流的方式獲得網頁的內容,並通過輸出流寫入HTML文件中。


方式一:

使用此方法需要指定輸入流和輸出流的字符編碼,否則可能會出現亂碼

步驟: 
1. 通過URL對象的openStream()方法獲得網頁的字節輸入流 
2. 將字節輸入流轉換成字符輸入流 
3. 為字符輸入流加緩沖區 
4. 定義一個字節輸出流 
5. 將字節輸出流轉換成字符輸出流 
6. 將讀取到的數據寫入文件 
7. 關閉流

public void way_1() throws Exception { InputStream inputStream;//接收字節輸入流 InputStreamReader inputStreamReader;//將字節輸入流轉換成字符輸入流 BufferedReader bufferedReader;//為字符輸入流加緩沖 FileOutputStream fileOutputStream;//字節輸出流 OutputStreamWriter outputStreamWriter;//將字節輸出流轉換成字符輸出流 URL wangyi = new URL("http://www.163.com/"); inputStream = wangyi.openStream(); inputStreamReader = new InputStreamReader(inputStream, "gb2312"); bufferedReader = new BufferedReader(inputStreamReader); String s; File dest = new File("src/wangyi.html"); fileOutputStream = new FileOutputStream(dest); outputStreamWriter = new OutputStreamWriter(fileOutputStream, "gb2312"); while ((s = bufferedReader.readLine()) != null) { outputStreamWriter.write(s); } outputStreamWriter.close(); fileOutputStream.close(); bufferedReader.close(); inputStreamReader.close(); inputStream.close(); }

 


方式二:

使用此方法不需要指定輸入流和輸出流的字符編碼(因為是通過字節的方式)

步驟: 
1. 通過URL對象的openStream()方法獲得網頁的字節輸入流 
2. 為字節輸入流加緩沖 
3. 創建字節輸出流對象 
4. 為字節輸出流加緩沖 
5. 讀取數據,並寫入HTML文件 
6. 關閉流

public void way_2() throws Exception{ File dest = new File("src/wangyi2.html"); InputStream is;//接收字節輸入流 FileOutputStream fos = new FileOutputStream(dest);//字節輸出流 URL wangyi = new URL("http://www.163.com/"); is = wangyi.openStream(); BufferedInputStream bis = new BufferedInputStream(is);//為字節輸入流加緩沖 BufferedOutputStream bos = new BufferedOutputStream(fos);//為字節輸出流加緩沖 int length; byte[] bytes = new byte[1024*20]; while((length = bis.read(bytes, 0, bytes.length)) != -1){ fos.write(bytes, 0, length); } bos.close(); fos.close(); bis.close(); is.close(); }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM