Hướng dẫn can you read websites html with java? - bạn có thể đọc các trang web html với java không?

sửa đổi lần cuối ngày 15 tháng 7 năm 2022

Đọc một trang web trong Java là một hướng dẫn trình bày một số cách để đọc một trang web trong Java. Nó chứa bảy ví dụ về việc tải xuống một nguồn HTTP từ một trang web nhỏ.

Java đọc các công cụ trang web

Java có các công cụ tích hợp và thư viện của bên thứ ba để đọc/tải xuống các trang web. Trong các ví dụ, chúng tôi sử dụng httpclient, url, jsoup, htmlcleaner, apache httpclient, jetty httpclient và htmlunit.

Trong các ví dụ sau, chúng tôi tải xuống nguồn HTML từ trang web của WebCode.me.

Java đọc trang web với httpclient

Java 11 đã giới thiệu thư viện httpclient.

com/zetcode/ReadWebPage.java

package com.zetcode;

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class ReadWebPage {

    public static void main(String[] args) throws IOException, InterruptedException {

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("http://webcode.me"))
                .GET() // GET is default
                .build();

        HttpResponse response = client.send(request,
                HttpResponse.BodyHandlers.ofString());

        System.out.println(response.body());
    }
}

Chúng tôi sử dụng java httpclient để tải xuống trang web.

HttpClient client = HttpClient.newHttpClient();

Một

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://webcode.me"))
    .build();
8 mới được tạo ra với phương pháp nhà máy
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://webcode.me"))
    .build();
9.

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://webcode.me"))
    .build();

Chúng tôi xây dựng một yêu cầu đồng bộ đến trang web. Phương pháp mặc định là có được.

HttpResponse response = client.send(request,
    HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());

Chúng tôi gửi yêu cầu và lấy nội dung của phản hồi và in nó vào bảng điều khiển. Chúng tôi sử dụng

HttpResponse response = client.send(request,
    HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());
0 vì chúng tôi mong đợi phản hồi HTML chuỗi.

Đọc một trang web có URL

HttpResponse response = client.send(request,
    HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());
1 đại diện cho một bộ định vị tài nguyên thống nhất, một con trỏ đến một tài nguyên trên web trên toàn thế giới.

com/zetcode/ReadWebPageEx.java

package com.zetcode;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class ReadWebPageEx {

    public static void main(String[] args) throws IOException {

        var url = new URL("http://webcode.me");
        try (var br = new BufferedReader(new InputStreamReader(url.openStream()))) {

            String line;

            var sb = new StringBuilder();

            while ((line = br.readLine()) != null) {

                sb.append(line);
                sb.append(System.lineSeparator());
            }

            System.out.println(sb);
        }
    }
}

Ví dụ mã đọc nội dung của một trang web.

try (var br = new BufferedReader(new InputStreamReader(url.openStream()))) {

Phương thức

HttpResponse response = client.send(request,
    HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());
2 mở kết nối với URL được chỉ định và trả về
HttpResponse response = client.send(request,
    HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());
3 để đọc từ kết nối đó.
HttpResponse response = client.send(request,
    HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());
4 là một cây cầu từ các luồng byte đến các luồng ký tự. Nó đọc byte và giải mã chúng thành các ký tự bằng cách sử dụng một ký tự được chỉ định. Ngoài ra,
HttpResponse response = client.send(request,
    HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());
5 được sử dụng để có hiệu suất tốt hơn.

var sb = new StringBuilder();

while ((line = br.readLine()) != null) {

    sb.append(line);
    sb.append(System.lineSeparator());
}

Dữ liệu HTML được đọc từng dòng với phương thức

HttpResponse response = client.send(request,
    HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());
6. Nguồn được thêm vào
HttpResponse response = client.send(request,
    HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());
7.

System.out.println(sb);

Cuối cùng, nội dung của

HttpResponse response = client.send(request,
    HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());
7 được in vào thiết bị đầu cuối.

Đọc một trang web với JSoup

JSOUP là một trình phân tích cú pháp Java HTML nổi tiếng.

________số 8

Chúng tôi đã sử dụng sự phụ thuộc maven này.

com/zetcode/ReadWebPageEx2.java

package com.zetcode;

import org.jsoup.Jsoup;
import java.io.IOException;

public class ReadWebPageEx2 {

    public static void main(String[] args) throws IOException {

        String webPage = "http://webcode.me";

        String html = Jsoup.connect(webPage).get().html();

        System.out.println(html);
    }
}

Ví dụ mã sử dụng JSOUP để tải xuống và in một trang web nhỏ.

HttpClient client = HttpClient.newHttpClient();
0

Phương thức

HttpResponse response = client.send(request,
    HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());
9 kết nối với trang web được chỉ định. Phương pháp
package com.zetcode;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class ReadWebPageEx {

    public static void main(String[] args) throws IOException {

        var url = new URL("http://webcode.me");
        try (var br = new BufferedReader(new InputStreamReader(url.openStream()))) {

            String line;

            var sb = new StringBuilder();

            while ((line = br.readLine()) != null) {

                sb.append(line);
                sb.append(System.lineSeparator());
            }

            System.out.println(sb);
        }
    }
}
0 đưa ra yêu cầu nhận. Cuối cùng, phương pháp
package com.zetcode;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class ReadWebPageEx {

    public static void main(String[] args) throws IOException {

        var url = new URL("http://webcode.me");
        try (var br = new BufferedReader(new InputStreamReader(url.openStream()))) {

            String line;

            var sb = new StringBuilder();

            while ((line = br.readLine()) != null) {

                sb.append(line);
                sb.append(System.lineSeparator());
            }

            System.out.println(sb);
        }
    }
}
1 lấy nguồn HTML.

Đọc một trang web với htmlcleaner

HTMLCleaner là một trình phân tích cú pháp HTML nguồn mở được viết bằng Java.

HttpClient client = HttpClient.newHttpClient();
1

Trong ví dụ này, chúng tôi sử dụng phụ thuộc Maven

package com.zetcode;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class ReadWebPageEx {

    public static void main(String[] args) throws IOException {

        var url = new URL("http://webcode.me");
        try (var br = new BufferedReader(new InputStreamReader(url.openStream()))) {

            String line;

            var sb = new StringBuilder();

            while ((line = br.readLine()) != null) {

                sb.append(line);
                sb.append(System.lineSeparator());
            }

            System.out.println(sb);
        }
    }
}
2.

com/zetcode/ReadWebPageEx3.java

HttpClient client = HttpClient.newHttpClient();
2

Ví dụ sử dụng

package com.zetcode;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class ReadWebPageEx {

    public static void main(String[] args) throws IOException {

        var url = new URL("http://webcode.me");
        try (var br = new BufferedReader(new InputStreamReader(url.openStream()))) {

            String line;

            var sb = new StringBuilder();

            while ((line = br.readLine()) != null) {

                sb.append(line);
                sb.append(System.lineSeparator());
            }

            System.out.println(sb);
        }
    }
}
3 để tải xuống một trang web.

HttpClient client = HttpClient.newHttpClient();
3

Trong các thuộc tính, chúng tôi đặt để bỏ qua khai báo XML.

HttpClient client = HttpClient.newHttpClient();
4

A

package com.zetcode;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class ReadWebPageEx {

    public static void main(String[] args) throws IOException {

        var url = new URL("http://webcode.me");
        try (var br = new BufferedReader(new InputStreamReader(url.openStream()))) {

            String line;

            var sb = new StringBuilder();

            while ((line = br.readLine()) != null) {

                sb.append(line);
                sb.append(System.lineSeparator());
            }

            System.out.println(sb);
        }
    }
}
4 tạo ra HTML kết quả mà không có bất kỳ thụt lề và/hoặc nén nào.

Đọc một trang web với apache httpclient

Apache HTTPClient là triển khai tác nhân HTTP tuân thủ HTTP/1.1. Nó có thể cạo một trang web bằng cách sử dụng quy trình yêu cầu và phản hồi. Một máy khách HTTP thực hiện phía máy khách của các giao thức HTTP và HTTPS.

HttpClient client = HttpClient.newHttpClient();
5

Chúng tôi sử dụng sự phụ thuộc maven này cho máy khách Apache HTTP.

com/zetcode/ReadWebPageEx4.java

HttpClient client = HttpClient.newHttpClient();
6

Trong ví dụ mã, chúng tôi gửi yêu cầu GET HTTP đến trang web được chỉ định và nhận phản hồi HTTP. Từ phản hồi, chúng tôi đọc nguồn HTML.

HttpClient client = HttpClient.newHttpClient();
7

Một

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://webcode.me"))
    .build();
8 được xây dựng.

HttpClient client = HttpClient.newHttpClient();
8

package com.zetcode;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class ReadWebPageEx {

    public static void main(String[] args) throws IOException {

        var url = new URL("http://webcode.me");
        try (var br = new BufferedReader(new InputStreamReader(url.openStream()))) {

            String line;

            var sb = new StringBuilder();

            while ((line = br.readLine()) != null) {

                sb.append(line);
                sb.append(System.lineSeparator());
            }

            System.out.println(sb);
        }
    }
}
6 là một lớp cho phương thức HTTP GET.

HttpClient client = HttpClient.newHttpClient();
9

Một phương thức GET được thực thi và nhận được

package com.zetcode;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class ReadWebPageEx {

    public static void main(String[] args) throws IOException {

        var url = new URL("http://webcode.me");
        try (var br = new BufferedReader(new InputStreamReader(url.openStream()))) {

            String line;

            var sb = new StringBuilder();

            while ((line = br.readLine()) != null) {

                sb.append(line);
                sb.append(System.lineSeparator());
            }

            System.out.println(sb);
        }
    }
}
7.

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://webcode.me"))
    .build();
0

Từ phản hồi, chúng tôi nhận được nội dung của trang web.

Đọc một trang web với Jetty httpclient

Dự án Jetty cũng có một ứng dụng khách HTTP.

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://webcode.me"))
    .build();
1

Đây là một sự phụ thuộc maven cho máy khách HTTP Jetty.

com/zetcode/ReadWebPageEx5.java

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://webcode.me"))
    .build();
2

Trong ví dụ, chúng tôi nhận được nguồn HTML của một trang web với máy khách Jetty HTTP.

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://webcode.me"))
    .build();
3

Một

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://webcode.me"))
    .build();
8 được tạo và bắt đầu.

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://webcode.me"))
    .build();
4

Yêu cầu GET được cấp cho URL được chỉ định.

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://webcode.me"))
    .build();
5

Nội dung được lấy từ phản hồi với phương thức

package com.zetcode;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class ReadWebPageEx {

    public static void main(String[] args) throws IOException {

        var url = new URL("http://webcode.me");
        try (var br = new BufferedReader(new InputStreamReader(url.openStream()))) {

            String line;

            var sb = new StringBuilder();

            while ((line = br.readLine()) != null) {

                sb.append(line);
                sb.append(System.lineSeparator());
            }

            System.out.println(sb);
        }
    }
}
9.

Đọc một trang web với htmlunit

HTMLunit là khung kiểm tra đơn vị Java để kiểm tra các ứng dụng dựa trên web.

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://webcode.me"))
    .build();
6

Chúng tôi sử dụng sự phụ thuộc maven này.

com/zetcode/ReadWebPageEx6.java

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("http://webcode.me"))
    .build();
7

Ví dụ tải xuống một trang web và in nó bằng thư viện htmlunit.

Trong bài viết này, chúng tôi đã cạo một trang web trong Java bằng các công cụ khác nhau, bao gồm httpclient, url, jsoup, htmlcleaner, apache httpclient, jetty httpclient và htmlunit.

Liệt kê tất cả các hướng dẫn Java.

Java có thể đọc HTML không?

Trong Java, chúng ta có thể trích xuất nội dung HTML và có thể phân tích tài liệu HTML.we can extract the HTML content and can parse the HTML Document.

Java có thể tương tác với các trang web không?

Ứng dụng web Java được sử dụng để tạo các trang web động. Java cung cấp hỗ trợ cho ứng dụng web thông qua các dịch vụ và JSP. Chúng tôi có thể tạo một trang web với các trang HTML tĩnh nhưng khi chúng tôi muốn thông tin sẽ năng động, chúng tôi cần ứng dụng web.Java provides support for web application through Servlets and JSPs. We can create a website with static HTML pages but when we want information to be dynamic, we need web application.

Làm cách nào để truy cập một trang web bằng Java?

Cách mở một trang web bằng mã Java..
Chúng tôi có thể mở một trang web hoặc trang web bằng Java ..
Bằng cách gọi Phương thức Duyệt () của Java.AWT.Máy tính để bàn.....
Để tạo URI tạo một đối tượng fro java.net.uri lớp objet bằng cách chuyển URL của trang web cần mở ..
Java.AWT.Máy tính để bàn.....
Hãy xem chương trình Java về cách mở URL trang web ..

Làm thế nào để bạn đọc nội dung của một trang web trong Java?

Sử dụng phương thức openStream ()..
Khởi tạo Java.mạng lưới.Lớp URL bằng cách chuyển URL của trang web mong muốn dưới dạng 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 truyền đối tượng InputStream được truy xuất ở trên làm tham số ..