首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 實作從指定 URL 抓取網頁原始碼完整方案

     編輯:Java 相關知識

前言

在開發無線專案時,常需與電信業者進行 XML 資料交換,因此必須能動態抓取對方提供的固定網址資料。本文分享一個完整的 Java 類別實作,能夠透過 HTTP 協定取得指定 URL 的網頁原始碼,並支援 Proxy 伺服器設定與多種輸出模式。

核心功能特色

  • 靈活的參數控制:透過屬性設定目標 URL、Proxy 伺服器參數、輸出路徑等
  • 雙重輸出模式:支援直接寫入本地檔案,或回傳字串供程式進一步處理
  • 完整的 Proxy 支援:包含位址、連接埠、帳號、密碼、網域等完整認證機制
  • 錯誤處理機制:提供錯誤訊息回傳,方便除錯與監控

程式碼架構說明

GetPageCode 類別採用標準的 Java Bean 設計模式,包含私有變數區、公共屬性存取器、建構子與核心方法 GetSource()。核心邏輯使用 java.net.WebRequest 與 WebResponse 建立 HTTP 連線,透過 StreamReader 讀取回應串流,最後依據 OutFilePath 屬性決定寫入檔案或存入 OutString 屬性。

使用範例

GetPageCode gpc = new GetPageCode();
gpc.Url = "https://example.com";
gpc.ProxyState = 1; // 1=使用 Proxy, 0=不使用
gpc.ProxyAddress = "proxy.company.com";
gpc.ProxyPort = "8080";
gpc.ProxyAccount = "username";
gpc.ProxyPassword = "password";
gpc.ProxyDomain = "corp";
gpc.OutFilePath = "C:/temp/page.html"; // 不設定則回傳字串
gpc.GetSource();

String errorMsg = gpc.NoteMessage; // 錯誤訊息
String htmlContent = gpc.OutString; // 回傳的 HTML 內容

關鍵實作細節

程式碼中對 Proxy 設定做了完善處理:當 ProxyState=1 時,自動建立 WebProxy 物件並設定 NetworkCredential 進行認證。讀取串流時使用 Encoding.Default 確保中文內容正確解碼。檔案寫入前會檢查檔案是否存在並先刪除,避免殘留舊資料。

適用場景與擴充建議

此方案適用於:網頁內容監控、資料同步擷取、API 回應記錄、自動化測試驗證等場景。可擴充方向包含:支援 HTTPS/SSL 憑證處理、加入連線逾時設定、支援 POST 方法與表單提交、整合 HTML 解析庫(如 Jsoup)直接提取結構化資料。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved