Chỉ đặt khóa http
Tên khóa chỉ scheme của đích, không phải của proxy. Một dictionary chỉ có http sẽ định tuyến HTTP thường và để mọi lời gọi HTTPS đi thẳng ra ngoài, không có lỗi nào báo cho bạn.
Trỏ requests tới một địa chỉ ISP tĩnh: một IP duy nhất trên mạng của một nhà cung cấp internet được nêu tên, giữ nguyên trong kỳ bạn trả tiền. Code bên dưới đã được chạy thử với một proxy có xác thực trước khi đăng.
Tóm lại: Truyền một dictionary proxies có cả hai khóa http và https, mỗi khóa đặt là http://USERNAME:PASSWORD@HOST:PORT, và requests sẽ gửi lời gọi qua proxy; các đích HTTPS đi qua proxy dưới dạng tunnel. Với SOCKS5, hãy cài requests[socks], chuyển proxy sang SOCKS5 trên đơn hàng và dùng scheme socks5h, để proxy phân giải tên miền thay cho máy của bạn.
Python requests lấy proxy từ một dictionary ánh xạ scheme của URL đích sang một URL proxy. Hướng dẫn này đặt dictionary đó cho một địa chỉ ISP tĩnh và chỉ ra ba nơi nó có thể nằm: trên một lời gọi, trên một session, hoặc trong biến môi trường.
Phần lớn proxy, kể cả proxy của chúng tôi, yêu cầu tên đăng nhập và mật khẩu. requests đọc chúng từ URL proxy và gửi tới proxy trên mỗi kết nối. Với đích HTTPS, proxy mở một tunnel và không bao giờ thấy nội dung của request. Các tab code cho thấy dạng dùng cho từng request và dạng dùng session.
Host, port, tên đăng nhập và mật khẩu, lấy từ mục Proxy của tôi trong bảng điều khiển hoặc từ đơn hàng trong API. Mỗi địa chỉ có bốn giá trị riêng; không có gateway dùng chung.
http://USERNAME:PASSWORD@HOST:PORT. Nếu mật khẩu chứa /, ?, # hoặc %, hãy mã hóa URL cho nó trước bằng urllib.parse.quote(password, safe="").
Gán cùng một URL cho khóa http và khóa https. Nếu chỉ đặt http, mọi request HTTPS sẽ bỏ qua proxy và đi ra từ chính địa chỉ của bạn.
Gửi request tới một trang hiển thị IP của bên gọi, hoặc mở What Is My IP qua cùng proxy đó, và xác nhận đó là địa chỉ bạn đã mua.
Luôn truyền timeout=: theo mặc định requests chờ vô thời hạn, và khi đó một kết nối bị treo trông như một script bị đứng.
import requests
# The four values come with your order (dashboard or API)
proxy = "http://USERNAME:PASSWORD@HOST:PORT"
response = requests.get(
"https://example.com/",
proxies={"http": proxy, "https": proxy},
timeout=30,
)
response.raise_for_status()
print(response.status_code)
import requests
proxy = "http://USERNAME:PASSWORD@HOST:PORT"
with requests.Session() as session:
# HTTP_PROXY / HTTPS_PROXY in the environment would override
# session.proxies; this makes the session use only its own setting.
session.trust_env = False
session.proxies.update({"http": proxy, "https": proxy})
response = session.get("https://example.com/", timeout=30)
response.raise_for_status()
print(response.status_code)
# pip install "requests[socks]"
import requests
# Switch the proxy to SOCKS5 first; use the values the order then shows.
# socks5h: the proxy resolves the hostname, not your machine.
proxy = "socks5h://USERNAME:PASSWORD@HOST:PORT"
response = requests.get(
"https://example.com/",
proxies={"http": proxy, "https": proxy},
timeout=30,
)
response.raise_for_status()
print(response.status_code)
Mỗi mẫu kết nối qua proxy HTTP bằng tên đăng nhập và mật khẩu, trừ mẫu SOCKS5: mẫu này cần chuyển proxy sang SOCKS5 trước, sau đó đơn hàng hiển thị port mới và thông tin đăng nhập mới để dùng. Thay bốn giá trị viết hoa bằng giá trị của đơn hàng của bạn.
| Phạm vi | Thông tin đăng nhập | Khi nào dùng | |
|---|---|---|---|
| proxies= trên một lời gọi | Chỉ request đó | Trong URL | Script có vài lời gọi |
| Session.proxies | Mọi request của session | Trong URL | Mọi thứ dài hơn, với trust_env đặt thành False |
| HTTP_PROXY và HTTPS_PROXY | Mọi lời gọi requests trong tiến trình | Trong URL | Code bạn không sửa được; NO_PROXY liệt kê các host cần bỏ qua |
| URL socks5h:// | Phạm vi nơi nó được đặt | Trong URL | Khi tên miền cần được phân giải tại proxy |
Tên khóa chỉ scheme của đích, không phải của proxy. Một dictionary chỉ có http sẽ định tuyến HTTP thường và để mọi lời gọi HTTPS đi thẳng ra ngoài, không có lỗi nào báo cho bạn.
Với socks5, máy của bạn phân giải tên miền và đưa cho proxy một IP. Với socks5h, proxy phân giải tên miền, nên truy vấn và câu trả lời đến từ mạng của proxy, điều này quan trọng với các trang trả lời theo vị trí.
Dấu gạch chéo, dấu hỏi hoặc dấu thăng trong mật khẩu làm URL bị cắt ngắn, và requests báo lỗi trước khi tới được proxy; dấu phần trăm thì bị giải mã như một chuỗi thoát. Hãy mã hóa URL cho mật khẩu, hoặc dùng xác thực bằng danh sách IP cho phép và bỏ thông tin đăng nhập ra.
requests đọc HTTP_PROXY, HTTPS_PROXY và NO_PROXY trừ khi bạn đặt trust_env thành False trên session, và các biến này ghi đè Session.proxies. Một biến cũ còn sót trên máy chủ có thể đưa lưu lượng của session tới nơi bạn không định, hoặc đi vòng qua proxy.
Đặt tên đăng nhập và mật khẩu vào URL proxy, http://USERNAME:PASSWORD@HOST:PORT, và truyền nó cho cả khóa http lẫn https. requests gửi thông tin đăng nhập tới proxy, và proxy trả về 407 nếu chúng sai. Hãy mã hóa mật khẩu có chứa ký tự dành riêng, hoặc dùng danh sách IP cho phép thay thế.
Cài gói bổ sung bằng pip install requests[socks], chuyển chính proxy sang SOCKS5 trên đơn hàng, rồi dùng port và thông tin đăng nhập mà đơn hàng hiển thị sau đó trong một URL socks5h://. Chỉ đổi scheme thôi là chưa đủ: một địa chỉ đang đặt HTTP sẽ không trả lời SOCKS5 cho đến khi được chuyển. SOCKS5
Có. Thêm địa chỉ IPv4 công khai nơi script của bạn chạy vào danh sách IP cho phép của proxy bằng một lời gọi API, PUT /orders/ORDER_ID/whitelist, hoặc qua máy chủ MCP; bảng điều khiển hiện chưa có chức năng cho việc này. Khi đó proxy chấp nhận kết nối từ địa chỉ đó mà không cần thông tin đăng nhập, qua HTTP và qua SOCKS5, và URL trở thành http://HOST:PORT. Khi danh sách đang được đặt, proxy chỉ chấp nhận các địa chỉ có trong danh sách, còn tên đăng nhập và mật khẩu ngừng hoạt động với đơn hàng đó; gửi một danh sách rỗng sẽ tắt danh sách cho phép, và đăng nhập bằng mật khẩu hoạt động trở lại.
Không. Proxy ISP tĩnh là một địa chỉ trong suốt kỳ bạn trả tiền, và mọi request bạn gửi qua nó đều đi ra từ địa chỉ đó. Nếu một tác vụ cần địa chỉ khác nhau cho mỗi request, đó là một pool xoay vòng, thứ chúng tôi chưa bán.
Gửi request qua cùng proxy tới một trang trả lại địa chỉ của bên gọi, hoặc mở What Is My IP từ một trình duyệt đã đặt proxy đó. Nếu trang hiển thị địa chỉ của chính bạn, nhiều khả năng đang thiếu khóa https. IP của tôi là gì
Kiểm thử website của chính bạn theo vùng, kiểm tra chất lượng, xác minh quảng cáo, nghiên cứu giá và thị trường, và bảo vệ thương hiệu không cần xét duyệt theo chính sách sử dụng chấp nhận được của chúng tôi. Proxy không vượt qua CAPTCHA, cơ chế phát hiện bot, giới hạn tần suất hay lệnh cấm tài khoản, và chính sách cấm dùng nó để thử làm việc đó. Chính sách Sử dụng Chấp nhận được