Dùng java.net.URL và openStream() – có sẵn trong JDK, không cần dependency.
Cơ chế
- Tạo
URLobject từ chuỗi địa chỉ - Gọi
openStream()→ trả vềInputStream - Đọc stream bằng
ScannerhoặcBufferedReader
Ví dụ hoàn chỉnh
import java.io.IOException;
import java.net.URL;
import java.util.Scanner;
public class ReadWebPageBasic {
public static void main(String[] args) throws IOException {
URL url = new URL("https://httpbin.org/html"); // trang test
try (Scanner sc = new Scanner(url.openStream(), "UTF-8")) {
StringBuilder sb = new StringBuilder();
while (sc.hasNextLine()) {
sb.append(sc.nextLine()).append("\n");
}
String html = sb.toString();
System.out.println("HTML gốc (đầu): " + html.substring(0, Math.min(200, html.length())) + "...");
// Loại bỏ tag HTML đơn giản
String text = html.replaceAll("<[^>]*>", "").replaceAll("\\s+", " ").trim();
System.out.println("Text thuần: " + text.substring(0, Math.min(200, text.length())) + "...");
}
}
}
Kết quả mẫu
HTML gốc (đầu):
httpbin.org
Herman Melville - Moby-Dick
...
Text thuần: Herman Melville - Moby-Dick ...
⚠️ Hạn chế
- Không hỗ trợ HTTPS redirect phức tạp, cookie, header tùy chỉnh
- Không parse HTML đúng chuẩn (regex
<[^>]*>lỗi với tag lồng, attribute chứa '>') - Không xử lý JavaScript rendering
Thư viện khuyên dùng cho production
- Jsoup: Parse HTML, selector CSS, dễ dùng
- HttpClient (Java 11+): HTTP/2, async, header, body handling
- OkHttp: Hiệu năng cao, connection pooling