Khởi chạy với proxy và xác thực#
import puppeteer from "puppeteer";
const browser = await puppeteer.launch({
headless: true,
args: ["--proxy-server=http://res.proxy-cyber.com:9000", "--no-first-run"],
});
const page = await browser.newPage();
await page.authenticate({ username: "USER-cc-us-sid-run1-ttl-30m", password: "PASS" });
await page.goto("https://api.ipify.org", { waitUntil: "domcontentloaded", timeout: 45000 });
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();Dùng bộ nhận diện phiên chạy riêng cho mỗi luồng làm việc độc lập, nơi mà cổng được chỉ định hỗ trợ nó. Xác nhận khoảng thời gian và thông số vị trí cho phép trong chi tiết kết nối của bạn. Một thiết bị cư trú có thể ngắt kết nối trước khi yêu cầu; một phiên chạy dính không phải là bảo đảm cùng một IP trong ngày. Đối với địa chỉ cố định, hãy so sánh một sản phẩm tĩnh đã đóng.
Một proxy cho mỗi trình duyệt#
Thiết lập khởi chạy --rpoxy- máy phục vụ mặc định của trình duyệt đó. Người quản lý hiện thời còn hỗ trợ bộ quản lý proxyServer trong trình duyệt. createBrowserContext (), với khả năng cung cấp thông tin được cung cấp qua trang.authenate(). Hãy sử dụng ngữ cảnh riêng cho các thiết lập proxy khác nhau và thư mục kiểu riêng cho các hồ sơ người dùng bền bỉ; kiểm tra mỗi ô thoát bên trong mỗi ngữ cảnh.
Chặn ảnh, phông chữ và phương tiện#
await page.setRequestInterception(true);
page.on("request", (req) => {
const t = req.resourceType();
if (["image", "media", "font", "stylesheet"].includes(t)) return req.abort();
req.continue();
});Kiên định#
- Đặt
Accept-Languagevà vùng thời gian đến đất nước thoát:page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"})vàpage.emulateTimezone(\"Europe/Berlin\"). - Tắt các rò rỉ WebTEC
--force-webrtc-ip-handling-policy=disable_non_proxied_udptrong vụ phóng phi thuyền. - Giữ một trình duyệt cho mỗi tài khoản; sử dụng lại thư mục dữ liệu người dùng của nó nếu tài khoản này trông giống một thiết bị trả về.
Lỗi của bạn sẽ đáp ứng#
| Triệu chứng | Nguyên nhân | Sửa |
|---|---|---|
| TP:ERR TUNNEL CONNECation FAILED | Cổng ra từ chối kết nối CONNECT: xác thực, tham số hoặc không thoát | Tái sản xuất với cURL -v để đọc mã cổng ra |
| Lưới:ERR PROXY AUTH UNPORD / nhắc | Xác thực () được gọi sau khi định vị | Gọi trang.authenticate trước khi geto |
| Địa chỉ IP giống nhau trong mỗi trình duyệt | Nhận dạng phiên chạy giống nhau | Dùng một tùy chọn khác biệt -sid- trên mỗi trình duyệt hoặc bỏ qua nó |
| Rất chậm tải đầu tiên | Thoát ra nhà cộng với trang lớn | Tài nguyên khối; tăng thời gian đến 45 s |
Người ta thắc mắc#
Puppeteer có thể dùng SOCKS5 với mật khẩu không?
Chrome không hỗ trợ khả năng xác thực SOCKS5. Hãy dùng proxy HTTP trên cổng 9000 có trang.authenticate, hoặc danh sách IP của máy phục vụ bạn và chuyền --poxy- Server=sock5 vội.key-poxy.com: 9001.