🎯 Trình duyệt đám mây tùy chỉnh, chống phát hiện được hỗ trợ bởi Chromium tự phát triển, thiết kế dành cho trình thu thập dữ liệu webtác nhân AI. 👉Dùng thử ngay
Quay lại blog

Cách sử dụng Proxy với HTTPX trong Python cho các yêu cầu ẩn danh

Daniel Kim
Daniel Kim

Lead Scraping Automation Engineer

18-Dec-2025
Nhìn Nhanh

Tăng cường tự động hóa và thu thập dữ liệu của bạn với Proxy Scrapeless — nhanh chóng, đáng tin cậy và giá cả phải chăng.

HTTPX là một client HTTP hiện đại, đầy đủ tính năng cho Python, hỗ trợ cả yêu cầu đồng bộ và không đồng bộ. Khi thực hiện thu thập dữ liệu web hoặc thực hiện nhiều cuộc gọi API, việc tích hợp một proxy là bước quan trọng để duy trì tính ẩn danh và quản lý khối lượng yêu cầu. HTTPX làm cho việc cấu hình proxy trở nên đơn giản, hỗ trợ cả thiết lập cơ bản và xác thực.

Cấu Hình Proxy Cơ Bản trong HTTPX

HTTPX cho phép bạn định nghĩa các proxy bằng cách sử dụng một từ điển mà ánh xạ giao thức (http:// hoặc https://) đến URL proxy. URL proxy tuân theo định dạng tiêu chuẩn: <GIAO THỨC>://<ĐỊA_CHỈ_IP>:<CỔNG>.

python Copy
import httpx

# Định nghĩa cài đặt proxy của bạn
proxies = {
    "http://": "http://216.137.184.253:80",
    "https://": "http://216.137.184.253:80"
}

# Thực hiện một yêu cầu với proxy đã chỉ định
try:
    r = httpx.get("https://httpbin.io/ip", proxies=proxies)
    print(f"IP phản hồi: {r.json().get('origin')}")
except httpx.ProxyError as e:
    print(f"Kết nối proxy thất bại: {e}")

Ngoài ra, bạn có thể cấu hình proxy khi khởi tạo một phiên httpx.Client, đây là cách tiếp cận được khuyến nghị để thực hiện nhiều yêu cầu đến cùng một mục tiêu, vì nó tái sử dụng kết nối.

python Copy
import httpx

proxy_url = "http://216.137.184.253:80"

with httpx.Client(proxies=proxy_url) as client:
    r = client.get("https://httpbin.io/ip")
    print(f"IP phản hồi: {r.json().get('origin')}")

Xử Lý Xác Thực Proxy

Đối với các proxy yêu cầu tên người dùng và mật khẩu, HTTPX hỗ trợ nhúng thông tin đăng nhập trực tiếp vào URL proxy. Định dạng là http://<TÊN_NGƯỜI_DÙNG>:<MẬT_KHẨU>@<ĐỊA_CHỈ_IP>:<CỔNG>.

python Copy
import httpx

# URL proxy với thông tin đăng nhập nhúng
proxy_url = "http://<TÊN_NGƯỜI_DÙNG_CỦA_BẠN>:<MẬT_KHẨU_CỦA_BẠN>@proxy.scrapeless.com:1337"

with httpx.Client(proxies=proxy_url) as client:
    r = client.get("https://httpbin.io/ip")
    print(f"IP phản hồi: {r.json().get('origin')}")

Triển Khai Xoay Vòng Proxy

Để tránh phát hiện và duy trì tỷ lệ thành công cao, bạn nên xoay vòng các proxy của mình. Điều này bao gồm việc duy trì một danh sách các điểm cuối proxy và chọn ngẫu nhiên một cái cho mỗi yêu cầu hoặc phiên. Điều này đặc biệt hiệu quả khi kết hợp với một thư viện thu thập dữ liệu mạnh mẽ.

python Copy
import httpx
import random

# Danh sách các URL proxy (ví dụ: từ bảng điều khiển Scrapeless của bạn)
proxy_urls = [
    "http://user:pass@proxy1.scrapeless.com:10000",
    "http://user:pass@proxy2.scrapeless.com:10001",
    "http://user:pass@proxy3.scrapeless.com:10002",
]

def make_proxied_request(url):
    # Chọn một proxy ngẫu nhiên cho yêu cầu
    random_proxy = random.choice(proxy_urls)
    
    # Cấu hình proxy cho client
    proxies = {
        "http://": random_proxy,
        "https://": random_proxy
    }

    try:
        with httpx.Client(proxies=proxies, timeout=10.0) as client:
            response = client.get(url)
            response.raise_for_status()
            return response
    except httpx.RequestError as e:
        print(f"Đã xảy ra lỗi trong khi yêu cầu {url} qua proxy {random_proxy}: {e}")
        return None

# Ví dụ sử dụng
response = make_proxied_request("https://targetwebsite.com/data")
if response:
    print(f"Đã thu thập dữ liệu thành công với mã trạng thái: {response.status_code}")

Giải Pháp Proxy Được Khuyến Nghị: Proxy Scrapeless

Đối với việc thu thập dữ liệu bất đồng bộ với khối lượng lớn bằng HTTPX, một hạ tầng proxy đáng tin cậy là rất quan trọng. Proxy Scrapeless được thiết kế cho hiệu suất và sự ẩn danh, cung cấp một nguồn IP đa dạng giúp giảm thiểu rủi ro bị chặn. Các Proxy Cư TrúProxy ISP Tĩnh của họ đặc biệt hiệu quả cho việc thu thập dữ liệu dựa trên Python, cung cấp mức độ tin cậy cao cần thiết để truy cập các mục tiêu phức tạp.

<div style=" font-weight: bold; width: 100%; max-width: 400px; padding: 12px 40px; background: #12A594; ``` ```css border-radius: 5px; border: 2px solid #12A594; color: #fff; cursor: pointer; box-sizing: border-box; font-size: 18px; ``` ```html Thử miễn phí > </div> </a> </div>

Câu hỏi thường gặp (FAQ)

H: HTTPX có hỗ trợ proxy SOCKS không?
Đ: Có, HTTPX hỗ trợ proxy SOCKS. Bạn chỉ cần chỉ định giao thức SOCKS trong URL proxy, ví dụ: socks5://user:pass@ip:port [5].

H: Lợi ích của việc sử dụng httpx.Client so với httpx.get() đơn giản là gì?
Đ: Sử dụng httpx.Client cho phép thực hiện kết nối pooling và quản lý phiên, hiệu quả hơn cho việc thực hiện nhiều yêu cầu. Nó cũng cho phép bạn thiết lập các tham số mặc định, như proxy, cho tất cả các yêu cầu thực hiện trong phiên client đó.

H: Tôi xử lý lỗi proxy trong HTTPX như thế nào?
Đ: HTTPX ném ra các ngoại lệ cụ thể cho các vấn đề mạng. Bạn nên bao bọc các yêu cầu của mình trong một khối try...except và bắt httpx.ProxyError hoặc httpx.RequestError tổng quát hơn để thực hiện logic thử lại hoặc chuyển sang một proxy khác.

Copy

Tại Scrapless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định và chính sách bảo mật trang web hiện hành. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động cạo nào, hãy tham khảo ý kiến ​​cố vấn pháp lý của bạn và xem xét các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.

Bài viết phổ biến nhất

Danh mục