🎯 Trình duyệt đám mây tùy chỉnh, chống phát hiện được hỗ trợ bởi Chromium tự phát triển, thiết kế dành cho trình thu thập dữ liệu webtác nhân AI. 👉Dùng thử ngay
Quay lại blog

Cách thiết lập proxy trong Selenium Java cho việc thu thập dữ liệu web mở rộng

Michael Lee
Michael Lee

Expert Network Defense Engineer

18-Dec-2025
Nhìn Qua Nhanh

Tăng cường tự động hóa và thu thập dữ liệu của bạn với Scrapeless Proxies — nhanh chóng, đáng tin cậy và giá cả phải chăng.

Việc tích hợp proxy vào các dự án Selenium Java là một yêu cầu cơ bản cho bất kỳ nhiệm vụ thu thập dữ liệu hoặc tự động hóa nghiêm túc nào. Proxy cho phép bạn che giấu địa chỉ IP thực của mình, vượt qua các giới hạn địa lý và phân phối các yêu cầu của bạn để tránh bị giới hạn tỷ lệ và bị cấm IP. Hướng dẫn này tập trung vào cách cấu hình proxy trong Selenium WebDriver bằng Java một cách chuẩn và hiệu quả nhất.

Cấu hình Proxy sử dụng ChromeOptions

Phương pháp phổ biến và đáng tin cậy nhất để thiết lập proxy trong Selenium Java là cấu hình các tùy chọn trình duyệt trước khi khởi tạo WebDriver. Điều này bao gồm việc tạo một đối tượng Proxy và truyền nó vào ChromeOptions (hoặc tương đương cho các trình duyệt khác như Firefox).

Đối tượng Proxy được sử dụng để xác định địa chỉ máy chủ proxy cho cả lưu lượng HTTP và SSL.

java Copy
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import io.github.bonigarcia.wdm.WebDriverManager;

public class Scraper {
    public static void main(String[] args) {
        // 1. Cài đặt WebDriver (sử dụng WebDriverManager cho tiện lợi)
        WebDriverManager.chromedriver().setup();

        // 2. Định nghĩa chi tiết proxy (IP:PORT)
        String proxyAddress = "184.169.154.119:80";

        // 3. Tạo một đối tượng Proxy và thiết lập các proxy HTTP và SSL
        Proxy proxy = new Proxy();
        proxy.setHttpProxy(proxyAddress);
        proxy.setSslProxy(proxyAddress);

        // 4. Tạo đối tượng ChromeOptions và thiết lập các tùy chọn proxy
        ChromeOptions options = new ChromeOptions();
        options.setProxy(proxy);
        options.addArguments("--headless=new"); // Tùy chọn: chạy ở chế độ headless

        // 5. Tạo phiên bản driver với các tùy chọn đã cấu hình
        WebDriver driver = new ChromeDriver(options);

        // 6. Điều hướng đến một URL kiểm tra
        driver.get("https://httpbin.io/ip");
        
        // ... phần còn lại của logic thu thập dữ liệu của bạn
        driver.quit();
    }
}

Triển khai Xoay Proxy trong Java

Đối với việc thu thập dữ liệu quy mô lớn, bạn phải xoay địa chỉ IP của mình để ngăn chặn yêu cầu của bạn bị đánh dấu là lưu lượng bot. Trong Java, điều này được thực hiện bằng cách duy trì danh sách các proxy và chọn ngẫu nhiên một số cho mỗi phiên WebDriver mới. Cách tiếp cận này rất hiệu quả để phân phối tải và duy trì một hồ sơ thấp.

java Copy
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
// ... các imports khác

public class RotatingScraper {
    public static void main(String[] args) {
        // ... cài đặt WebDriver

        // 1. Định nghĩa một danh sách các địa chỉ proxy (IP:PORT)
        List<String> proxyList = new ArrayList<>();
        proxyList.add("190.61.88.147:8080");
        proxyList.add("13.231.166.96:80");
        proxyList.add("35.213.91.45:80");

        // 2. Chọn ngẫu nhiên một proxy cho phiên
        Random rand = new Random();
        String proxyAddress = proxyList.get(rand.nextInt(proxyList.size()));

        // 3. Cấu hình đối tượng Proxy với địa chỉ được chọn ngẫu nhiên
        Proxy proxy = new Proxy();
        proxy.setHttpProxy(proxyAddress);
        proxy.setSslProxy(proxyAddress);

        // 4. Thiết lập các tùy chọn proxy trong ChromeOptions
        ChromeOptions options = new ChromeOptions();
        options.setProxy(proxy);
        // ... các tùy chọn khác

        // 5. Tạo phiên bản driver
        WebDriver driver = new ChromeDriver(options);
        // ... logic thu thập dữ liệu
    }
}

Xử lý Proxy Đã Xác Thực

Đối với các proxy cao cấp yêu cầu tên người dùng và mật khẩu, đối tượng Proxy tiêu chuẩn không đủ. Selenium không xử lý natively cửa sổ xác thực xuất hiện trong trình duyệt. Các giải pháp thay thế phổ biến bao gồm:

  1. Sử dụng Tiện Ích Proxy: Sử dụng một tiện ích mở rộng trình duyệt xử lý xác thực proxy và cấu hình sẵn thông tin xác thực.
  2. Sử dụng Trình Quản Lý Proxy: Sử dụng một trình quản lý proxy hoặc cổng (như của Scrapeless) xử lý xác thực ở phía server, cho phép bạn kết nối bằng địa chỉ IP:PORT đơn giản.

Giải Pháp Proxy Được Khuyên Dùng: Scrapeless Proxies

Copy
Để thực hiện web scraping chuyên nghiệp dựa trên Java, chất lượng của mạng proxy của bạn là điều rất quan trọng. Các proxy Scrapeless được thiết kế để cung cấp tốc độ, độ tin cậy và sự ẩn danh cần thiết cho các hoạt động Selenium quy mô lớn.

**Proxy Đặt Cư** từ Scrapeless được khuyên dùng cho các dự án Selenium Java, vì chúng cung cấp địa chỉ IP thực mà có khả năng bị phát hiện và chặn bởi các hệ thống chống bot tinh vi thấp hơn nhiều. Hơn nữa, các **Proxy ISP Tĩnh** của họ cung cấp sự cân bằng hoàn hảo giữa độ tin cậy của nhà ở và tốc độ ổn định, điều này lý tưởng cho việc duy trì một môi trường scraping ổn định. Bằng cách sử dụng dịch vụ như Scrapeless, bạn có thể đảm bảo rằng <a href="https://www.scrapeless.com/vi/wiki/scrapeless-browser-full-guide-2026" rel="nofollow">**trình duyệt scraping**</a> của bạn luôn hoạt động với một địa chỉ IP sạch, có uy tín cao.

<div style="padding: 20px 0; text-align: center;">
  <a
    style="
      margin: 8px;
      display: inline-block;
      text-decoration: none;
    "
    href="https://www.goproxy.com/register?link=https://app.scrapeless.com/passport/login?utm_source=official&utm_medium=blog&utm_campaign=nebula-proxy"
  >
    <div
      style="
        font-weight: bold;
        width: 100%;
        max-width: 400px;
        padding: 12px 40px;
        background: #12A594;
        border-radius: 5px;
        border: 2px solid #12A594;
        color: #fff;
        cursor: pointer;
        box-sizing: border-box;
        font-size: 18px;
      "
    >
      Thử Miễn Phí &gt;
    </div>
  </a>
</div>

### Câu Hỏi Thường Gặp (FAQ)

**Q: Tôi có thể sử dụng các thuộc tính hệ thống Java để cài đặt proxy cho Selenium không?**
A: Mặc dù bạn có thể thiết lập các thuộc tính hệ thống như `System.setProperty("http.proxyHost", "...")`, nhưng điều này chỉ ảnh hưởng đến ngăn xếp mạng Java bên dưới và **không** ảnh hưởng đến trình duyệt được Selenium điều khiển. Bạn phải sử dụng đối tượng `Proxy` với `ChromeOptions` để cấu hình cài đặt mạng của trình duyệt.

**Q: Sự khác biệt giữa cài đặt proxy HTTP và SSL trong đối tượng `Proxy` là gì?**
A: Phương thức `setHttpProxy()` cấu hình proxy cho lưu lượng HTTP tiêu chuẩn, trong khi `setSslProxy()` cấu hình cho lưu lượng HTTPS (SSL/TLS) an toàn. Thực hành tốt nhất là thiết lập cả hai đến cùng một địa chỉ proxy để đảm bảo tất cả lưu lượng được chuyển hướng đúng cách.

**Q: Có tốt hơn khi sử dụng mở rộng proxy hoặc quản lý proxy cho xác thực không?**
A: Một trình quản lý proxy hoặc gateway thường được ưa chuộng cho việc scraping quy mô lớn, ở cấp độ sản xuất. Nó tập trung hóa xác thực và logic xoay vòng bên ngoài mã Selenium của bạn, làm cho kịch bản scraping của bạn sạch hơn và mạnh mẽ hơn đối với các thay đổi.

***

# Tài Liệu Tham Khảo

[1] <a href="https://www.gnu.org/software/wget/manual/html_node/Wgetrc-File.html" rel="nofollow">**Hướng Dẫn GNU Wget: Tệp Wgetrc**</a>
[2] <a href="https://www.geeksforgeeks.org/web-scraping-using-wget/" rel="nofollow">**GeeksforGeeks: Web Scraping bằng Wget**</a>
[3] <a href="https://www.selenium.dev/documentation/webdriver/getting_started/install_libs/" rel="nofollow">**Tài Liệu Selenium: Cài Đặt Thư Viện**</a>
[4] <a href="https://www.oracle.com/java/technologies/javase/proxy.html" rel="nofollow">**Oracle Java Networking và Proxies**</a>
[5] <a href="https://www.baeldung.com/java-selenium-proxy" rel="nofollow">**Baeldung: Selenium với Proxy trong Java**</a>
[6] <a href="https://www.w3.org/TR/WD-proxy-req" rel="nofollow">**Dự Thảo Làm Việc W3C: Yêu Cầu về Proxy**</a>
[7] <a href="https://www.scrapeless.com/vi/wiki/what-is-headless-browser" rel="nofollow">**Wiki Scrapeless: Trình Duyệt Không Giao Diện Là Gì**</a>
[8] <a href="https://www.scrapeless.com/vi/wiki/best-web-scraping-services-with-the-fastest-headless-browsers" rel="nofollow">**Wiki Scrapeless: Dịch Vụ Web Scraping Tốt Nhất**</a>
[9] <a href="https://www.scrapeless.com/vi/wiki/web-scraping-with-lxml" rel="nofollow">**Wiki Scrapeless: Web Scraping với LXML**</a>
[10] <a href="https://www.scrapeless.com/vi/wiki/recommended-free-automated-data-collection-tools" rel="nofollow">**Wiki Scrapeless: Công Cụ Thu Thập Dữ Liệu Tự Động Miễn Phí Được Khuyên Dùng**</a>
[11] <a href="https://www.scrapeless.com/vi/wiki/scrapeless-browser-full-guide-2026" rel="nofollow">**Wiki Scrapeless: Hướng Dẫn Toàn Diện về Trình Duyệt Scrapeless**</a>

Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến ​​cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.

Bài viết phổ biến nhất

Danh mục