Hợp nhất · can thiệp

Sử dụng giấy proxy với Puppeteer và không đầu Chrome

Đặt một proxy trong việc khởi chạy trình duyệt hay trong bối cảnh trình duyệt được hỗ trợ, rồi cung cấp giấy proxy trước khi định vị. Hãy kiểm tra lối thoát được chỉ định bên trong mỗi ngữ cảnh và giữ luồng công việc hoạt động độc lập trong các phiên chạy riêng.

2 phút đọc Phần 5 Đã xem xét Ban biên tập Proxy Cyber

Khởi chạy với proxy và xác thực#

Node.js
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#

Yêu cầu ngăn chặ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-Language và 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_udp trong 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ứngNguyên nhânSửa
TP:ERR TUNNEL CONNECation FAILEDCổng ra từ chối kết nối CONNECT: xác thực, tham số hoặc không thoátTái sản xuất với cURL -v để đọc mã cổng ra
Lưới:ERR PROXY AUTH UNPORD / nhắcXá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ệtNhận dạng phiên chạy giống nhauDù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ênThoát ra nhà cộng với trang lớnTà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.

Tài khoản của bạn

Quản lý giấy proxy của bạn trong một tài khoản

So sánh các mạng lưới, thứ tự đặt và làm theo yêu cầu và hỗ trợ của bạn từ một bảng điều khiển.

Tạo tài khoản