chromedp.ProxyServer là một tùy chọn khởi chạy trình duyệt. Hãy áp dụng nó cho allocator tạo ra tiến trình Chromium:

opts := append(chromedp.DefaultExecAllocatorOptions[:],
    chromedp.ProxyServer("http://proxy.example:8080"),
)
allocCtx, cancelAllocator := chromedp.NewExecAllocator(
    context.Background(), opts...,
)
defer cancelAllocator()

tabCtx, cancelTab := chromedp.NewContext(allocCtx)
defer cancelTab()
err := chromedp.Run(tabCtx,
    chromedp.Navigate("https://www.example.com/"),
)

Đoạn mã thuộc về hàm sẵn có của ứng dụng, với cách xử lý lỗi thông thường cho err. NewContext kế thừa allocator từ allocCtx. Một context được tạo từ parent khác có thể tạo trình duyệt khác mà không có tùy chọn đó.

URL proxy chỉ định một bộ lắng nghe HTTP; các ứng viên công khai có trong danh sách proxy HTTP; trang vẫn là đích HTTPS. ProxyServer ánh xạ tới cờ --proxy-server của Chromium, không phải cấu hình proxy net/http của Go.

Chromium không chấp nhận tên người dùng và mật khẩu được nhúng trong URL proxy thủ công. Một endpoint có xác thực cần xác thực trình duyệt được hỗ trợ hoặc một phương án trung gian; thêm user:password vào cờ này không tương đương với xác thực URL trong ứng dụng khách HTTP. Luồng sự kiện xác thực CDP của Chrome là một trong những cách được hỗ trợ để xử lý thách thức proxy dự kiến.

Giữ allocator sống cho đến khi công việc của trình duyệt hoàn tất. Việc hủy nó cũng thuộc phần dọn dẹp tiến trình, trong khi hủy tab giới hạn context trình duyệt liên quan.

Bài viết liên quan