Cách sử dụng Proxy với Python Requests (Hướng dẫn)
TL;DR
Python Requests chấp nhận một ánh xạ proxies với các khóa riêng biệt http và https; sơ đồ URL proxy mô tả kết nối proxy, chứ không phải đích đến.
Sử dụng một Session với trust_env = False khi bạn cần ngăn chặn các biến môi trường proxy xung quanh thay đổi lộ trình.
Thông tin xác thực proxy thuộc về URL proxy hoặc một cấu hình được bảo vệ bởi bí mật, không thuộc về requests.get(auth=...), cái mà xác thực đến đích.
Thiết lập thời gian chờ kết nối và đọc, gọi raise_for_status(), và xác thực nội dung trả về. Một kết nối proxy thành công không phải là một lần quét hợp lệ.
URL Proxy được sinh ra bởi Nstdata cung cấp Thực Host, Cổng, Tên người dùng, Mật khẩu, và các tham số sản phẩm; đừng đoán các giá trị gateway.
Bạn Cần Gì Trước Khi Sử Dụng Proxy Với Python Requests?
Bạn cần Python, Requests, một URL thử nghiệm được phép, và một cấu hình proxy hoạt động chứa Giao thức, Host, Cổng, Tên người dùng, và Mật khẩu. Đối với Nstdata, tạo một Kênh, bật Tạo Proxy, cấu hình các tham số của nó, và sao chép URL Proxy được sinh ra từ luồng Kênh chính thức. Hướng dẫn proxy của Nstdata tài liệu hóa Kênh của tên người dùng gateway, loại proxy, quốc gia, thời gian phiên, và các thành phần ID phiên. Giữ mật khẩu trong một quản lý bí mật và không bao giờ cam kết một URL proxy đầy đủ.
Cài đặt Requests trong một môi trường ảo với python -m pip install requests. Nếu proxy thực tế của bạn là SOCKS5, cài đặt python -m pip install 'requests[socks]'; phân biệt DNS khách bên với DNS bên proxy . Chọn sơ đồ mà nhà cung cấp tài liệu. Các ví dụ bên dưới giả định một URL proxy HTTP được sao chép vào bằng cách tiêm bí mật của thời gian chạy. Chúng không thể được thực hiện chống lại Nstdata mà không có thông tin xác thực của bạn, vì vậy các kiểm tra đầu ra được hiển thị dưới dạng hướng dẫn thay vì kết quả giả lập.
Requests Định Tuyến HTTP và HTTPS Qua Một Proxy Như Thế Nào?
Requests định tuyến một đích đến qua proxy được chọn bởi khóa ánh xạ http hoặc https. Đối với một đích đến HTTPS, giá trị có thể vẫn bắt đầu bằng http:// khi gateway là một proxy HTTP. Khách hàng đầu tiên kết nối với gateway, sau đó thiết lập đường hầm đến đích. Một phản hồi 407 là thất bại xác thực proxy; một 401 đến đích thường liên quan đến tài khoản mục tiêu.
Requests cũng có thể kế thừa HTTP_PROXY, HTTPS_PROXY, và NO_PROXY từ môi trường. Tài liệu của nó cảnh báo rằng một ánh xạ Session.proxies có thể bị ghi đè bởi các cài đặt môi trường. Các proxy per-request rõ ràng hoặc trust_env = False khiến quyết định định tuyến dễ tái tạo hơn. Một proxy công ty hoặc VPN vẫn có thể ảnh hưởng đến hành vi mạng bên ngoài Python, vì vậy hãy xác minh IP thoát quan sát được.
Phương Pháp 1: Làm Thế Nào Để Đặt Một Proxy Cho Một Yêu Cầu?
Một ánh xạ per-request là sự lựa chọn rõ ràng nhất cho một kiểm tra được ủy quyền duy nhất vì lộ trình có thể nhìn thấy tại địa điểm gọi.
Bước 1: Tải URL được sinh ra từ một bí mật
Đọc PROXY_URL khi chạy. Nó nên có giao thức được tài liệu hóa và Host, Cổng, Tên người dùng, và Mật khẩu được sinh ra. Biến môi trường là một ví dụ về hệ thống vận chuyển; một kho bí mật được quản lý là điều ưu tiên cho sản xuất.
Bước 2: Đưa ra cả hai sơ đồ đích đến
import os
import requests
proxy_url = os.environ["PROXY_URL"]# vd. http://<user>:<password>@<host>:<port>proxies ={"http": proxy_url,"https": proxy_url}response = requests.get("https://api.ipapi.is/", proxies=proxies, timeout=(5,20),)response.raise_for_status()print(response.text[:300])# Kiểm tra IP thoát và vị trí trả về.
Mục tiêu là điểm kiểm tra IP được sử dụng trong tài liệu của Nstdata. Thay thế nó bằng một URL bạn được phép truy cập sau khi xác minh lộ trình.
Bước 3: Xác thực IP thoát và nội dung
Xác nhận rằng IP thoát và vị trí quan sát được khớp với yêu cầu công việc. Đối với một trang nội dung, kiểm tra tiêu đề hoặc các trường mong đợi, không chỉ HTTP 200. Dừng lại nếu phản hồi là một thử thách, ngôn ngữ sai, hoặc chuyển hướng không mong đợi.
Phương Pháp 2: Làm Thế Nào Để Tái Sử Dụng Một Proxy Qua Một Phiên?
Một Session Requests tái sử dụng trạng thái kết nối cho các cuộc gọi liên quan; nó không đảm bảo rằng nhà cung cấp sẽ bảo tồn một IP thoát trừ khi chính sách phiên proxy cũng như vậy.
Bước 1: Tạo một phiên mà không có proxy xung quanh
Thiết lập trust_env = False nếu công việc phải chỉ sử dụng proxy đã cung cấp. Điều này cũng vô hiệu hóa cấu hình dựa trên môi trường như .netrc; sử dụng xác thực mục tiêu rõ ràng nếu cần thiết.
Các URL ví dụ là các giá trị chỗ. Sử dụng các điểm cuối đã được phê duyệt. Việc truyền proxies một cách rõ ràng trong mỗi cuộc gọi tránh sự bất ngờ về độ ưu tiên môi trường đã được tài liệu hóa.
Bước 3: Kiểm tra xem có cần sự liên tục hay không
Nếu những cuộc gọi này tạo thành một workflow có trạng thái, hãy cấu hình một phiên sticky được hỗ trợ trong tên người dùng được tạo ra bởi Nstdata và xác minh IP thoát. Một Session của Requests chỉ quản lý kết nối và cookie phía máy khách.
Phương pháp 3: Làm thế nào bạn xoay vòng giữa các yêu cầu độc lập?
Việc xoay vòng là phù hợp cho các yêu cầu độc lập, được phép khi một lối thoát mới là cần thiết theo thiết kế công việc. Với Nstdata, hãy sử dụng định dạng proxy được tạo và một ID phiên mới đã được tài liệu hóa, hoặc chọn tùy chọn xoay vòng của nhà cung cấp; đừng tự tạo một URL gateway.
Bước 1: Định nghĩa một khối lượng công việc giới hạn
Chọn một tập hợp nhỏ các URL đã được ủy quyền, một giới hạn tỷ lệ và một kiểm tra chấp nhận. Tách biệt các yêu cầu độc lập khỏi các luồng nhiều bước cần một lối thoát sticky.
Bước 2: Tạo cấu hình proxy phù hợp
Sử dụng Channel → Proxy Generation cho quốc gia và thời gian phiên dự kiến. Nếu ứng dụng của bạn tạo ra tên người dùng một cách lập trình, hãy tuân theo thứ tự tham số đã được tài liệu hóa chính xác và mã hóa URL thông tin đăng nhập; các URL do nhà cung cấp tạo ra ít lỗi hơn.
Bước 3: Ghi lại và xác thực từng kết quả
Ghi lại một định danh phiên đã được biên dịch, điểm đến, trạng thái HTTP, thời gian đã trôi qua, và kết quả được chấp nhận/hủy bỏ. Không ghi lại mật khẩu hoặc URL proxy đầy đủ. Nếu nhiều yêu cầu thất bại, hãy dừng lại và chẩn đoán thay vì tăng cường tần suất xoay vòng.
Các lỗi proxy nên được tách biệt khỏi lỗi mục tiêu và nội dung. Một 407 cho thấy thông tin xác thực proxy không hợp lệ, một IP nguồn không được chấp thuận nếu đang sử dụng cho phép IP, hoặc một Channel không hoạt động. Một thời gian kết nối hết hạn gợi ý Host hoặc Port sai, egress bị chặn, hoặc một vấn đề gateway. Một mục tiêu 403 hoặc 429 yêu cầu xem xét chính sách và tỷ lệ yêu cầu của nguồn. Một phản hồi 200 với trang sai là một lỗi xác thực nội dung.
Hướng dẫn khắc phục sự cố Nstdata đề cập đến 407 và kết nối. Giữ các lần thử có giới hạn và kiểm tra thân phản hồi trước khi coi bất kỳ yêu cầu nào là được chấp nhận. Để có thêm kiểm soát định tuyến qua các ứng dụng, Nstdata Proxy Manager là một lớp hoạt động riêng biệt; nó không thay đổi API của Requests.
Bạn nên làm gì tiếp theo?
Bắt đầu với Phương pháp 1 đối với một điểm kết thúc kiểm tra IP, sau đó chuyển sang một mẫu trang nhỏ đã được ủy quyền. Sử dụng Phương pháp 2 cho các yêu cầu liên quan và chỉ sử dụng Phương pháp 3 khi các yêu cầu độc lập biện minh cho việc xoay vòng. Theo dõi chi phí cho mỗi trang được chấp nhận, không chỉ thành công trong kết nối proxy. Nếu công việc là phát hiện trang web và chuyển đổi Markdown thay vì một khách hàng Requests tùy chỉnh, Nstdata Crawl là một API thu thập dữ liệu Web riêng biệt cho dữ liệu sẵn sàng cho LLM.
Q: Giá trị ánh xạ https có nên bắt đầu bằng https:// không?
Không nhất thiết. Sử dụng schema của gateway proxy; một URL proxy HTTP có thể gửi đến một đích HTTPS.
Q: Liệu auth=(user, password) có xác thực proxy không?
Không. Tham số auth của Requests thường áp dụng cho điểm đến. Đặt thông tin xác thực proxy trong URL proxy đã cung cấp thông qua proxies.
Q: Tại sao Session.proxies có vẻ như bị bỏ qua?
Requests có thể áp dụng các cài đặt proxy môi trường trên Session.proxies. Truyền proxies một cách rõ ràng hoặc sử dụng một phiên với trust_env = False khi phù hợp.
Q: Có hỗ trợ SOCKS5 trong Requests không?
Có, với phụ thuộc tùy chọn requests[socks]. Chọn socks5h nếu cần phải giải quyết DNS ở phía proxy và được hỗ trợ.
Q: Mã này có phải là một bài kiểm tra Nstdata trực tiếp không?
Không. Cần một thông tin xác thực Nstdata Channel thực; đoạn mã sử dụng các giá trị chỗ và phải được chạy trong môi trường đã được ủy quyền của bạn.
So sánh xác thực người dùng qua proxy bằng tên đăng nhập-mật khẩu và danh sách trắng IP, thiết lập từng phương pháp, chẩn đoán lỗi 407, và chọn quy trình làm việc Nstdata an toàn.
Kai Watanabe
Nov. 5th 2026
Hơn 110 triệu IP thực với tỷ lệ truy cập thành công 99,9%
Phản hồi trung bình ~0,5 giây cho tác vụ có độ đồng thời cao
Chỉ từ $0.1/GB
Truy cập ngay các nhóm proxy dân cư, trung tâm dữ liệu, IPv6 và ISP cao cấp.