Cách thiết lập Puppeteer để thu thập dữ liệu web | Hướng dẫn 2026
Tóm lại
Proxy Puppeteer thường được áp dụng trên toàn bộ trình duyệt với tham số khởi động --proxy-server của Chrome. Mỗi trang trong quy trình trình duyệt đó sử dụng tuyến đường trừ khi quy tắc bỏ qua của Chrome nói khác đi.
Proxy HTTP yêu cầu xác thực cần có cuộc gọi page.authenticate() riêng trong các quy trình làm việc thông thường của Puppeteer. Giữ tên người dùng và mật khẩu trong các biến môi trường hoặc trình quản lý bí mật.
Xác minh IP thoát trong ngữ cảnh trình duyệt trước khi thu thập mục tiêu. Điều này giúp phát hiện thông tin xác thực sai, quy tắc bỏ qua và các kết nối trực tiếp bất ngờ sớm.
Một quy trình trình duyệt ánh xạ tự nhiên với một điểm truy cập proxy. Đối với nhiều điểm thoát đồng thời, hãy tạo các công nhân trình duyệt giới hạn thay vì thay đổi proxy khởi động trên một trình duyệt hiện có.
Puppeteer chỉ nên thu thập các trang công khai hoặc được ủy quyền với tốc độ tôn trọng. Một proxy không thay thế quyền kiểm soát truy cập, các điều khoản, chỉ thị robots hoặc nghĩa vụ bảo mật.
Proxy Puppeteer hoạt động như thế nào?
Proxy Puppeteer định tuyến lưu lượng mạng của Chrome thông qua một trung gian được cấu hình khi trình duyệt khởi động. Điểm đến sau đó thấy IP thoát của proxy, trong khi Puppeteer vẫn kiểm soát điều hướng, thực thi JavaScript, bộ chọn, ảnh chụp màn hình, và vòng đời trình duyệt. Hạ tầng proxy Nstproxy có thể cung cấp điểm cuối, nhưng ứng dụng Node.js vẫn chịu trách nhiệm về hành vi của trình duyệt và xử lý dữ liệu.
Puppeteer điều khiển Chrome hoặc Chromium thông qua API JavaScript của nó. Chrome Headless hiện đại chia sẻ việc triển khai cốt lõi của trình duyệt, như được giải thích trong t tài liệu về chế độ Headless của Chrome. Một trình duyệt hữu ích khi trang được ủy quyền yêu cầu thực thi JavaScript; hãy sử dụng một khách hàng HTTP trực tiếp khi dữ liệu đã có sẵn thông qua một API hợp lệ hoặc phản hồi tĩnh.
Trải nghiem Nstproxy - Bat dau dung thu mien phi ngay
Để tìm hiểu về mô hình mạng phía sau thiết lập, hãy đọc proxy HTTP là gì.
Yêu cầu trước khi thu thập web bằng Puppeteer
Bạn cần có môi trường Node.js được hỗ trợ, một gói Puppeteer hiện tại, một cài đặt Chrome được cung cấp hoặc được gói đó công nhận, giá trị kết nối proxy, và một mục tiêu công khai hoặc được ủy quyền.
mkdir puppeteer-proxy-demo
cd puppeteer-proxy-demo
npm init -ynpminstall puppeteer
Các biến HTTP_PROXY, HTTPS_PROXY, và NO_PROXY được mô tả trong hướng dẫn cấu hình của Puppeteer áp dụng cho việc tải xuống và cấu hình thực thi trình duyệt của Puppeteer. Để định tuyến lưu lượng trang một cách dự đoán, hãy truyền tham số khởi động proxy của Chrome.
Cách thiết lập proxy Puppeteer
Khởi động Puppeteer với --proxy-server để áp dụng một điểm cuối cho quy trình trình duyệt. Xác minh rằng PROXY_SERVER tồn tại trước khi khởi động Chrome.
Phản hồi IP nên khác với một kết nối trực tiếp và khớp với khu vực hoặc nhà cung cấp mong muốn. API ipify báo cáo địa chỉ công khai mà dịch vụ thấy được; nó không chứng minh rằng mọi giao thức trình duyệt khác đều đi theo cùng một tuyến đường.
Cách xác thực proxy Puppeteer
Đối với một proxy HTTP yêu cầu tên người dùng và mật khẩu, hãy gọi page.authenticate() trước khi điều hướng. Không đặt thông tin xác thực trong tham số khởi động hoặc ghi nhật ký đối tượng môi trường.
importpuppeteerfrom'puppeteer';const required =['PROXY_SERVER','PROXY_USERNAME','PROXY_PASSWORD'];for(const name of required){if(!process.env[name])thrownewError(`${name} is required`);}const browser =await puppeteer.launch({headless:true,args:[`--proxy-server=${process.env.PROXY_SERVER}`],});try{const page =await browser.newPage();await page.authenticate({username: process.env.PROXY_USERNAME,password: process.env.PROXY_PASSWORD,});await page.goto('https://api.ipify.org?format=json',{waitUntil:'domcontentloaded',timeout:30_000,});console.log(await page.evaluate(()=>document.body.innerText));}finally{await browser.close();}
Lỗi xác thực thường xuất hiện dưới dạng net::ERR_INVALID_AUTH_CREDENTIALS hoặc HTTP 407. Xác nhận giao thức điểm cuối và định dạng tên người dùng được tạo bởi nhà cung cấp trước khi thêm các lần thử lại.
Nhìn Nhanh
Tạo một điểm cuối Nstproxy, gán một phiên cố ý cho mỗi công nhân trình duyệt và xác minh IP thoát của trình duyệt trước khi truy cập vào một mục tiêu được ủy quyền.
Thu Thập Dữ Liệu Một Trang Công Khai Qua Puppeteer
Một ví dụ thu thập dữ liệu có trách nhiệm bằng Puppeteer nên yêu cầu một trang công khai đã được giới hạn, chờ một bộ chọn ổn định, chỉ trích xuất các trường cần thiết và đóng trình duyệt ngay cả khi điều hướng thất bại.
example.com được dành cho tài liệu bởi chính sách miền ví dụ của IANA. Đối với một dự án thực tế, chỉ thay thế bộ chọn sau khi kiểm tra một mục tiêu được ủy quyền và ưu tiên đánh dấu ngữ nghĩa ổn định hơn tên lớp được tạo ra.
Chọn Nstproxy cho Puppeteer
Nstproxy Residential Prime Proxies phù hợp với các công việc Puppeteer cần thoát cư trú, các vùng có thể chọn, hoặc phiên liên tục cho các quy trình làm việc được ủy quyền nhiều trang. Puppeteer tiêu thụ điểm cuối qua cấu hình proxy tiêu chuẩn của Chrome, vì vậy không cần thư viện trình duyệt cụ thể của nhà cung cấp. Tài liệu hiện tại của Nstproxy mô tả các Kênh, điểm cuối cổng, các tham số quốc gia, thời gian phiên, ID phiên và hỗ trợ HTTP/HTTPS/SOCKS5. Sự kết hợp này phù hợp với việc hiển thị trang công khai, kiểm tra định vị, xác minh quảng cáo và giám sát giá cả khi mục tiêu cho phép tự động hóa. Một proxy không thể đảm bảo quyền truy cập, và kịch bản vẫn cần có đồng thời giới hạn, thời gian chờ điều hướng và xác thực phản hồi.
Kiểm soát phiên: Giữ cùng một ID phiên đã được tài liệu trong khi quy trình làm việc của trình duyệt phụ thuộc vào cookie hoặc trạng thái phân trang; thay đổi nó giữa các công việc độc lập khi có ý định xoay vòng.
Giá Residential Prime: Các gói và tùy chọn trả theo mức sử dụng hỗ trợ các hồ sơ lưu lượng trình duyệt khác nhau; xác minh tỷ lệ hiện tại và khối lượng chuyển nhượng trước khi chọn kế hoạch.
Cổng vùng: Chọn cổng gần nhất với công nhân để cải thiện kết nối, sau đó yêu cầu quốc gia thoát riêng biệt.
Lựa chọn giao thức: HTTP/HTTPS là con đường xác thực đơn giản nhất cho Puppeteer. Kiểm tra hành vi SOCKS5 trên bản Chrome chính xác trước khi chuẩn hóa nó.
Hướng dẫn công cụ máy chủ proxy rộng hơn so sánh tự động hóa trình duyệt với các khách hàng HTTP nhẹ hơn, trong khi hướng dẫn proxy thu thập dữ liệu giải thích khi nào các thoát cư trú, trung tâm dữ liệu, hoặc các ISP kéo dài phù hợp với khối lượng công việc.
Xoay Chuyển Proxy Giữa Các Công Nhân Trình Duyệt
Một trình duyệt đã khởi động có một giá trị --proxy-server, vì vậy nhiều thoát đồng thời nên sử dụng các quy trình trình duyệt riêng biệt hoặc một lớp định tuyến được xây dựng đặc biệt. Giữ cho nhóm đủ nhỏ để phù hợp với máy và chính sách mục tiêu.
Ví dụ giới hạn nhóm ở hai worker. Các giới hạn trong sản xuất nên tính đến bộ nhớ, băng thông, trọng lượng trang, giới hạn tỷ lệ mục tiêu và kế hoạch proxy. Không tạo một trình duyệt mới cho mỗi URL nếu một lô tuân thủ có thể tái sử dụng một trình duyệt và một phiên ổn định.
Giảm Lưu Lượng Traffic Trình Duyệt Mà Không Che Giấu Hành Vi
Chặn yêu cầu có thể bỏ qua các tài sản lớn khi việc trích xuất được ủy quyền không cần đến chúng. Chặn hình ảnh và phông chữ giảm transfer, nhưng chặn các tập lệnh có thể thay đổi trang hoặc xóa dữ liệu đang được thu thập.
Đăng ký bộ xử lý yêu cầu trước khi điều hướng. Kiểm tra DOM đã trả về sau mỗi thay đổi thay vì giả định rằng số byte thấp hơn sẽ bảo tồn tính đúng đắn.
Khắc Phục Lỗi Proxy Puppeteer
Giai đoạn gỡ lỗi proxy Puppeteer nên bắt đầu với một trang kiểm tra IP duy nhất trong một quy trình trình duyệt mới.
Triệu chứng
Ranh giới có thể có
Kiểm tra
ERR_PROXY_CONNECTION_FAILED
Máy chủ, cổng, tường lửa, hoặc gateway không có sẵn
Kiểm tra chính tả và khả năng kết nối của endpoint từ worker
ERR_INVALID_AUTH_CREDENTIALS hoặc 407
Xác thực proxy
Gọi page.authenticate() trước khi điều hướng và xác nhận thông tin xác thực được tạo
Trang tải nhưng IP là trực tiếp
Tham số proxy bị thiếu hoặc bị bỏ qua
In ra các tham số khởi chạy và kiểm tra endpoint IP bên trong trang
Thời gian chờ điều hướng
Tuyến đường chậm, trang nặng, hành vi mục tiêu, hoặc tài nguyên bị chặn
Kiểm tra một endpoint nhẹ, tăng thời gian chờ một cách cố ý và kiểm tra sự cố yêu cầu
Trích xuất bị trắng hoặc không đầy đủ
Bộ chọn đã thay đổi hoặc JavaScript chưa hoàn tất
Chờ một bộ chọn ổn định hoặc phản hồi liên quan thay vì một độ trễ tùy ý
Tăng trưởng bộ nhớ
Các trình duyệt hoặc trang chưa được đóng
Sử dụng các block finally và giới hạn số worker đồng thời
Phiên bị ngắt quãng giữa các trang
Thoát luân phiên trong công việc có trạng thái
Tái sử dụng một phiên và trình duyệt của nhà cung cấp cho chuỗi này
Tài liệu Page.goto API của Puppeteer mô tả các tùy chọn điều hướng và hợp đồng phản hồi. Tránh đối xử với mọi thời gian chờ như một vấn đề proxy.
Thu Thập Dữ Liệu Web Có Trách Nhiệm Với Puppeteer
Puppeteer chỉ nên thu thập dữ liệu công khai hoặc được ủy quyền cho một mục đích xác định. Xem xét các điều khoản và hướng dẫn từ robots, xác định trình thu thập thông tin khi thích hợp, tôn trọng giới hạn tỷ lệ, tối thiểu hóa các trường giữ lại, và cung cấp một quy trình xóa hoặc liên hệ cho việc thu thập kéo dài.
Đừng sử dụng quay vòng proxy để né tránh các biện pháp kiểm soát truy cập, CAPTCHAs, hạn chế tài khoản, hoặc các từ chối rõ ràng. Nếu một trang web cung cấp API hoặc xuất dữ liệu cho thông tin cần thiết, nên ưu tiên giao diện hỗ trợ đó.
Kết Luận
Thiết lập một proxy Puppeteer tại thời điểm khởi động trình duyệt, xác thực mỗi trang trước khi điều hướng, và xác minh IP thoát bên trong Chrome. Giữ một phiên proxy cho công việc có trạng thái và chỉ sử dụng một số worker trình duyệt riêng biệt khi các tác vụ độc lập yêu cầu các đầu ra khác nhau. Việc thu thập dữ liệu đáng tin cậy phụ thuộc vào các bộ chọn, thời gian chờ, dọn dẹp vòng đời, và quyền như nó phụ thuộc vào tuyến đường mạng.
Trải Nghiệm Nstproxy — Bắt Đầu Dùng Thử Miễn Phí Ngay Hôm Nay
Bắt đầu với một trình duyệt không đầu và một điều hướng kiểm tra IP, sau đó chuyển phiên proxy đã xác minh vào một công việc Puppeteer được ủy quyền, giới hạn.
Q: Làm thế nào tôi có thể thiết lập một proxy trong Puppeteer?
Truyền --proxy-server=PROTOCOL://HOST:PORT trong mảng args của puppeteer.launch(). Bắt đầu một quy trình trình duyệt mới khi endpoint proxy thay đổi.
Q: Làm thế nào tôi có thể thêm xác thực proxy trong Puppeteer?
Gọi page.authenticate({ username, password }) trước khi điều hướng đầu tiên cho một proxy HTTP đã xác thực. Tải cả hai giá trị từ cấu hình runtime được bảo vệ.
Q: Mỗi trang Puppeteer có thể sử dụng một proxy khác nhau không?
Proxy khởi động tiêu chuẩn của Chrome là toàn trình duyệt, vì vậy các endpoint riêng biệt thường yêu cầu các quy trình trình duyệt riêng biệt. Một trung gian định tuyến có thể cung cấp kiểm soát chi tiết hơn, nhưng nó thêm một thành phần khác để xác minh.
Q: Tại sao proxy Puppeteer của tôi không thay đổi IP?
Tham số khởi động có thể bị thiếu, bị định dạng sai, hoặc bị bỏ qua, hoặc bài kiểm tra có thể chạy bên ngoài ngữ cảnh trình duyệt. Điều hướng trang Puppeteer đến một dịch vụ kiểm tra IP và kiểm tra kết quả.
Q: Tôi có nên thay đổi proxy cho mỗi trang không?
Không. Giữ một phiên cho các trang liên quan, cookie, và phân trang; chỉ thay đổi giữa các đơn vị công việc độc lập khi quy trình làm việc và chính sách mục tiêu cho phép.
Q: Việc thu thập dữ liệu bằng Puppeteer có hợp pháp không?
Tính hợp pháp phụ thuộc vào dữ liệu, quyền hạn, hợp đồng, quyền tài phán và mục đích sử dụng. Chỉ thu thập dữ liệu từ các trang công khai hoặc được phép, giảm thiểu dữ liệu, và tuân thủ các quy tắc áp dụng của trang web.
Hướng dẫn từng bước năm 2026 để trích xuất dữ liệu sản phẩm từ Amazon -- giá cả, đánh giá, ASIN và kết quả tìm kiếm -- với mã code thực tế, cái nhìn tổng quan về việc sử dụng hợp pháp/đúng đắn liên quan đến API Quảng cáo Sản phẩm đã bị ngừng hoạt động của Amazon, và một Mẹo Thêm để biến một lần trích xuất thành một công cụ theo dõi giá liên tục với Nstproxy Crawl và Proxy Manager.
Lena Zhou
Aug. 17th 2026
110M+ IP that voi ti le truy cap thanh cong 99.9%
Phan hoi trung binh ~0.5s cho tac vu dong thoi cao
Chi tu $0.1/GB
Truy cap ngay cac pool proxy residential, datacenter, IPv6 va ISP cao cap.