01Đọc tên người dùng proxy như thế nào?
Tên người dùng proxy là một chuỗi cài đặt ngắn gồm các phần nối với nhau bằng dấu gạch nối. Chuỗi bắt đầu bằng user, rồi thêm các cặp tên và giá trị để đặt vị trí đầu ra và thời gian giữ IP. Khi đã biết các phần, bạn có thể tự viết mọi chuỗi kết nối mà không cần mở bảng điều khiển.
Sau country là mã quốc gia hai chữ cái viết thường. user-country-us là IP Mỹ và user-country-jp là IP Nhật Bản. Sau city là tên thành phố viết thường, khoảng trắng đổi thành dấu gạch dưới, như user-country-us-city-new_york.
Sau session là tên phiên do bạn tự đặt. Với user-country-jp-session-shop1, mọi yêu cầu dùng tên đó giữ cùng một IP tối đa 120 phút. Thêm type-mobile, như user-type-mobile-country-gb, để đi ra qua IP di động.
Ô mật khẩu luôn nhận token truy cập bắt đầu bằng pt_. Để đổi vị trí hay phiên, chỉ sửa tên người dùng và giữ nguyên token.
- user đánh dấu phần bắt đầu của cài đặt.
- country cộng mã hai chữ cái để chọn quốc gia.
- city cộng tên có dấu gạch dưới để chọn thành phố.
- session cộng một tên để giữ cùng IP.
- type-mobile để chọn IP di động.
02Proxy HTTP hay SOCKS5: nên dùng loại nào?
Proxy HTTP là lựa chọn mặc định dễ dùng cho thu thập web và làm việc với trình duyệt, còn proxy SOCKS5 hợp với lưu lượng không phải web hoặc khi bạn muốn phân giải DNS ở phía proxy. ProxyToo nhận cả hai trên một cổng là gate.proxytoo.com:7000. Giữ nguyên tên người dùng và token, chỉ đổi giao thức ở đầu địa chỉ.
Proxy HTTP được tạo ra cho yêu cầu web, nên hầu hết thư viện và trình duyệt đều hiểu ngay. Trang HTTPS cũng dùng được, vì proxy mở một đường hầm mã hóa cho kết nối. Với các công cụ web như requests, Scrapy, Puppeteer và Playwright, hãy bắt đầu với định dạng HTTP.
SOCKS5 chuyển tiếp chính kết nối, nên mang được nhiều loại lưu lượng ngoài web. Trong Python, bắt đầu địa chỉ bằng socks5h sẽ để proxy phân giải tên miền ở quốc gia đầu ra, giữ vị trí của bạn nhất quán. Trình duyệt nền Chromium hỗ trợ hạn chế SOCKS5 có tên người dùng, nên HTTP là lựa chọn trơn tru hơn cho tự động hóa trình duyệt.
- HTTP cho thu thập web và tự động hóa trình duyệt
- SOCKS5 cho chương trình gửi lưu lượng không phải web
- Địa chỉ socks5h để phân giải DNS ở quốc gia của proxy
- Cùng tên người dùng và token cho cả hai
03Thêm proxy vào trình duyệt hoặc trình duyệt antidetect như thế nào?
Với trình duyệt thông thường, mở tiện ích proxy và nhập bốn giá trị vào các ô riêng: host, port, tên người dùng và token. Chọn định dạng host:port:user:pass trong Tạo thông tin kết nối ở bảng điều khiển, cả bốn giá trị nằm trên một dòng, sẵn sàng sao chép từng ô. Nếu hộp đăng nhập hiện ra ở lần tải trang đầu, hãy nhập tên người dùng và token vào đó.
Trình duyệt antidetect cho mỗi hồ sơ một môi trường trình duyệt riêng, nên quy tắc cơ bản là mỗi hồ sơ một tên người dùng. Trong ô proxy của hồ sơ, chọn HTTP hoặc SOCKS5, rồi thêm phần session vào tên người dùng với tên phiên khác nhau cho mỗi hồ sơ. Khi đó mỗi hồ sơ có IP riêng, và IP giữ nguyên trong hồ sơ đó.
Đặt ngôn ngữ, múi giờ và vị trí của hồ sơ khớp với quốc gia đã chọn để trang hiển thị như người truy cập địa phương thấy. Với hồ sơ chạy một tài khoản trong thời gian dài, proxy ISP hoặc proxy datacenter riêng giữ cùng IP suốt thời hạn. Đặt mua một trong hai ở Mua sản phẩm trong bảng điều khiển bằng cách chọn số lượng và thời hạn.
- Mỗi hồ sơ một tên phiên
- Ngôn ngữ và múi giờ khớp với quốc gia của IP
- Proxy ISP cho hồ sơ chạy lâu dài
- Tên người dùng và token trong hộp đăng nhập
04Dùng proxy với Python requests và Scrapy như thế nào?
Trong Python, hãy tạo proxy thành một dòng có dạng http://username:token@gate.proxytoo.com:7000 và truyền vào cài đặt proxy của thư viện. Với requests, bước quan trọng là đặt cùng địa chỉ cho cả mục http và https. Điền cả hai mục để yêu cầu HTTPS cũng đi qua proxy.
Đặt proxy một lần trên đối tượng Session của requests và mọi yêu cầu trong phiên đó đều dùng nó. Dùng tên người dùng chỉ có quốc gia khi muốn IP mới cho mỗi yêu cầu, và tên người dùng có phần session cho thao tác nối tiếp như đăng nhập. Với SOCKS5, cài thêm gói hỗ trợ SOCKS cho requests và đổi đầu địa chỉ thành socks5h.
Trong Scrapy, đặt địa chỉ cùng kiểu vào giá trị proxy trong meta của mỗi yêu cầu, middleware proxy có sẵn sẽ tự chuyển tên người dùng và token thành header xác thực. Để áp một cài đặt cho mọi yêu cầu, hãy viết một downloader middleware nhỏ điền giá trị proxy. Để chia lưu lượng theo phiên, cho middleware đó gán tên phiên khác nhau cho mỗi nhóm yêu cầu.
Tinh chỉnh số luồng song song và nhịp độ bằng các cài đặt như CONCURRENT_REQUESTS và DOWNLOAD_DELAY. Bắt đầu thấp, theo dõi phản hồi ổn định, rồi tăng dần để cân bằng tốc độ và tỷ lệ thành công. Proxy dân cư tính theo lưu lượng sử dụng, nên lọc bỏ hình ảnh và phông chữ giúp số dư dùng được lâu hơn.
05Cài đặt proxy trong Node.js, Puppeteer và Playwright như thế nào?
Trong Node.js, cách thông dụng là tạo một proxy agent và truyền cho thư viện gửi yêu cầu. Với HTTP, dùng gói như https-proxy-agent hoặc ProxyAgent của undici, còn với SOCKS5 dùng socks-proxy-agent, truyền vào địa chỉ chứa tên người dùng và token. Tạo agent một lần và dùng lại cho các yêu cầu để kết nối được tái sử dụng và luôn nhanh.
Với Puppeteer, chỉ truyền địa chỉ cổng vào tham số khởi chạy --proxy-server, rồi gửi riêng tên người dùng và token bằng page.authenticate sau khi mở trang. Tách như vậy là cách cài đặt ổn định nhất trên Chrome. Để đổi quốc gia hay phiên, cách đơn giản nhất là khởi chạy một trình duyệt khác với tên người dùng mới.
Với Playwright, đặt server, username và password trong tùy chọn proxy khi khởi chạy và xác thực được xử lý trong một bước. Ô password nhận token truy cập của bạn. Bạn cũng có thể khởi chạy một trình duyệt và cho mỗi context một proxy riêng, nên ghép một tên phiên với mỗi context cho phép một kịch bản chạy song song nhiều IP.
Tự động hóa trình duyệt tải hình ảnh, video và phông chữ trên mọi trang, cộng lại thành lưu lượng rất lớn. Chặn tài nguyên không cần bằng tính năng chặn yêu cầu sẽ giảm chi phí proxy dân cư và di động vốn tính theo GB. Thêm tên phiên giữ IP ổn định trong lúc trang tải, nên trang hiển thị trọn vẹn.
06Proxy xoay vòng hay phiên cố định: loại nào tốt hơn cho thu thập dữ liệu?
Với thu thập mà mỗi trang được đọc độc lập, hãy dùng IP mới cho mỗi yêu cầu, còn với thao tác nối tiếp như đăng nhập hay giỏ hàng thì dùng phiên. Không có phần session thì IP đổi ở mọi yêu cầu, có phần session thì IP giữ nguyên theo tên đó. Một token xử lý cả hai, nên bạn chọn được cho từng bước của công việc.
Chế độ xoay vòng hợp với công việc mà các trang không liên quan nhau, như kết quả tìm kiếm, danh sách sản phẩm và bảng giá. Yêu cầu được trải đều trên nhiều IP, nên với trang web chúng trông như lưu lượng bình thường từ nhiều người truy cập. Ngay cả khi thu thập lớn trên một trang, giãn cách yêu cầu giúp mọi thứ ổn định.
Với phiên, mẹo là dùng tên phiên riêng cho mỗi đơn vị công việc. Nếu kiểm tra năm tài khoản cửa hàng, đặt tên shop1 đến shop5 để mỗi tài khoản giữ IP riêng. Chia công việc thành các thao tác ngắn hoàn thành trong thời gian của phiên giúp giữ một IP cho cả thao tác.
Nếu cần cùng một IP suốt một tháng, proxy ISP hoặc proxy datacenter riêng là phù hợp nhất, còn với khối lượng lớn ở đơn giá thấp, proxy datacenter dùng chung hoặc proxy IPv6 là lựa chọn tốt. Với công việc lưu lượng lớn chấp nhận trộn quốc gia, proxy dân cư không giới hạn giá $37.58 mỗi ngày giúp dự tính chi phí dễ dàng.
- IP mới mỗi yêu cầu cho các trang độc lập
- Giữ tên phiên cho thao tác đăng nhập và thanh toán
- Tên phiên khác nhau cho mỗi đơn vị công việc
- ISP hoặc datacenter riêng cho một IP suốt tháng
07Kiểm tra IP proxy và sửa lỗi kết nối như thế nào?
Cách kiểm tra nhanh nhất là gửi một yêu cầu qua proxy tới trang hiển thị IP, rồi xác nhận IP và quốc gia khớp với quốc gia trong tên người dùng. Chọn định dạng curl trong Tạo thông tin kết nối ở bảng điều khiển là có ngay lệnh kiểm tra để dán vào terminal. Nếu đã đặt phiên, hãy gửi cùng lệnh hai ba lần để xác nhận IP được giữ.
Phản hồi 407 nghĩa là proxy không chấp nhận thông tin đăng nhập, thường do sai một ký tự trong tên người dùng hoặc token. Kiểm tra token bắt đầu bằng pt_, không có khoảng trắng hay xuống dòng lẫn vào khi sao chép, và tên người dùng bắt đầu bằng user. Nếu ký tự đặc biệt nằm trong địa chỉ một dòng, mã hóa URL cho chúng sẽ khắc phục.
Các phản hồi như 403 hay 429 đến từ trang web, nghĩa là kết nối proxy đã thành công và trang đang theo dõi tốc độ hoặc kiểu yêu cầu. Hãy giãn cách yêu cầu, gửi header giống trình duyệt, và chuyển từ phiên sang IP mới cho mỗi yêu cầu.
Hết thời gian chờ thường do mạng văn phòng hoặc trường học chặn cổng của gateway, chọn thành phố quá hẹp, hoặc thời gian chờ trong mã quá ngắn. Thử cùng lệnh từ mạng khác, bỏ phần city và chỉ chọn quốc gia, và cho yêu cầu thời gian chờ dài hơn. Đồng thời kiểm tra số dư còn tiền và, với sản phẩm IP, đơn hàng hiển thị Đang sử dụng trong Đơn hàng của tôi.
- 407 thì kiểm tra tên người dùng và token
- 403 hoặc 429 thì giảm tốc và xoay IP
- Hết thời gian chờ thì kiểm tra mạng, thành phố và thời gian chờ
- Chạy cùng lệnh vài lần để thử phiên
08Giữ an toàn token truy cập proxy như thế nào?
Token truy cập vừa là mã tài khoản vừa là mật khẩu proxy, nên ai có nó đều dùng được proxy bằng số dư của bạn. Máy chủ chỉ lưu giá trị băm của token, nên tệp token bạn lưu khi đăng ký là bản gốc duy nhất. Hãy giữ bản sao ở hai nơi và thêm vào trình quản lý mật khẩu để luôn an toàn và dễ tìm.
Đừng để token trong mã, hãy nạp nó từ biến môi trường hoặc tệp cấu hình riêng. Thêm tệp cấu hình đó vào .gitignore để nó không vào kho mã, và trên máy chủ dùng chung hãy siết quyền tệp để chỉ bạn đọc được. Như vậy bạn chia sẻ được mã mà token vẫn nằm trên máy của bạn.
Hãy để ý cả nhật ký và ảnh chụp màn hình. In toàn bộ địa chỉ proxy khi gặp lỗi sẽ ghi thẳng token vào nhật ký, nên hãy che phần token mỗi khi ghi địa chỉ. Khi đăng câu hỏi hay ảnh chụp màn hình, chỉ để lộ tên người dùng và xóa token trước.
- Tệp token được lưu ở hai nơi
- Token được nạp từ biến môi trường
- Tệp cấu hình nằm ngoài kho mã
- Token được che trong nhật ký và ảnh chụp màn hình