Bạn có thể đọc nội dung của một trang web theo nhiều cách bằng cách sử dụng Java. Ở đây, chúng ta sẽ thảo luận về ba trong số chúng.
Sử dụng phương thức openStream ()
URL lớp của gói java.net đại diện cho Bộ định vị tài nguyên đồng nhất được sử dụng để trỏ một tài nguyên (tệp hoặc, thư mục hoặc tham chiếu) trong world wide web.
openStream () phương thức của lớp này mở một kết nối đến URL được đại diện bởi đối tượng hiện tại và trả về một đối tượng InputStream sử dụng mà bạn có thể đọc dữ liệu từ URL.
Do đó, để đọc dữ liệu từ trang web (sử dụng lớp URL) -
-
Khởi tạo lớp java.net.URL bằng cách chuyển URL của trang web mong muốn làm tham số cho hàm tạo của nó.
-
Gọi phương thức openStream () và truy xuất đối tượng InputStream.
-
Khởi tạo lớp Máy quét bằng cách chuyển đối tượng InputStream đã truy xuất ở trên làm tham số.
Ví dụ
import java.io.IOException; import java.net.URL; import java.util.Scanner; public class ReadingWebPage { public static void main(String args[]) throws IOException { //Instantiating the URL class URL url = new URL("https://www.something.com/"); //Retrieving the contents of the specified page Scanner sc = new Scanner(url.openStream()); //Instantiating the StringBuffer class to hold the result StringBuffer sb = new StringBuffer(); while(sc.hasNext()) { sb.append(sc.next()); //System.out.println(sc.next()); } //Retrieving the String from the String Buffer object String result = sb.toString(); System.out.println(result); //Removing the HTML tags result = result.replaceAll("<[^>]*>", ""); System.out.println("Contents of the web page: "+result); } }
Đầu ra
<html><body><h1>Itworks!</h1></body></html> Contents of the web page: Itworks!
Sử dụng HttpClient
Http client là một thư viện chuyển giao, nó nằm ở phía client, gửi và nhận các thông điệp HTTP. Nó cung cấp triển khai cập nhật, nhiều tính năng và hiệu quả, đáp ứng các tiêu chuẩn HTTP gần đây.
Yêu cầu GET (của giao thức Http) được sử dụng để truy xuất thông tin từ máy chủ đã cho bằng cách sử dụng một URI nhất định. Các yêu cầu sử dụng GET chỉ nên truy xuất dữ liệu và không có ảnh hưởng nào khác đến dữ liệu.
API HttpClient cung cấp một lớp có tên HttpGet đại diện cho phương thức nhận yêu cầu. Để thực hiện yêu cầu GET và truy xuất nội dung của trang web -
-
createDefault () phương thức của lớp HttpClients trả về một đối tượng ClosableHttpClient, là phần triển khai cơ sở của giao diện HttpClient. Sử dụng phương pháp này, tạo một đối tượng HttpClient.
-
Tạo một yêu cầu HTTP GET bằng cách khởi tạo lớp HttpGet. Hàm tạo của lớp này chấp nhận giá trị Chuỗi đại diện cho URI của trang web mà bạn cần gửi yêu cầu.
-
Thực thi yêu cầu HttpGet bằng cách gọi execute () phương pháp.
-
Lấy một đối tượng InputStream đại diện cho nội dung của trang web từ phản hồi dưới dạng -
httpresponse.getEntity().getContent()
Ví dụ
import java.util.Scanner; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; public class HttpClientExample { public static void main(String args[]) throws Exception{ //Creating a HttpClient object CloseableHttpClient httpclient = HttpClients.createDefault(); //Creating a HttpGet object HttpGet httpget = new HttpGet("https://www.something.com/"); //Executing the Get request HttpResponse httpresponse = httpclient.execute(httpget); Scanner sc = new Scanner(httpresponse.getEntity().getContent()); //Instantiating the StringBuffer class to hold the result StringBuffer sb = new StringBuffer(); while(sc.hasNext()) { sb.append(sc.next()); //System.out.println(sc.next()); } //Retrieving the String from the String Buffer object String result = sb.toString(); System.out.println(result); //Removing the HTML tags result = result.replaceAll("<[^>]*>", ""); System.out.println("Contents of the web page: "+result); } }
Đầu ra
<html><body><h1>Itworks!</h1></body></html> Contents of the web page: Itworks!
Sử dụng thư viện Jsoup
Jsoup là một thư viện dựa trên Java để làm việc với nội dung dựa trên HTML. Nó cung cấp một API rất tiện lợi để trích xuất và thao tác dữ liệu, sử dụng các phương thức tốt nhất của DOM, CSS và jquery. Nó triển khai đặc điểm kỹ thuật HTML5 của WHATWG và phân tích cú pháp HTML sang cùng một DOM như các trình duyệt hiện đại làm.
Để truy xuất nội dung của một trang web bằng thư viện Jsoup -
-
connect () phương thức của lớp Jsoup chấp nhận một URL của một trang web và kết nối với trang web được chỉ định và trả về đối tượng kết nối. Kết nối với trang web mong muốn bằng cách sử dụng connect () phương pháp.
-
Phương thức get () của giao diện Kết nối gửi / thực hiện yêu cầu GET và trả về tài liệu HTML như một đối tượng của lớp Tài liệu. Gửi yêu cầu GET đến trang bằng cách gọi phương thức get ().
-
Truy xuất nội dung của tài liệu đã thu được vào một Chuỗi dưới dạng -
String result = doc.body().text();
Ví dụ
import java.io.IOException; import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class JsoupExample { public static void main(String args[]) throws IOException { String page = "https://www.something.com/"; //Connecting to the web page Connection conn = Jsoup.connect(page); //executing the get request Document doc = conn.get(); //Retrieving the contents (body) of the web page String result = doc.body().text(); System.out.println(result); } }
Đầu ra
It works!