Khi dự án đã có Requests, truyền ánh xạ proxy vào lời gọi:

import requests

proxies = {
    "http": "http://127.0.0.1:8080",
    "https": "http://127.0.0.1:8080",
}

response = requests.get(
    "https://example.com/",
    proxies=proxies,
    timeout=(5, 15),
)
response.raise_for_status()
print(response.status_code)

Thay điểm cuối loopback bằng proxy đang chạy của bạn hoặc một ứng viên từ danh sách proxy HTTP mà bạn sẽ thử bằng yêu cầu này. Khóa mô tả lược đồ đích: http cho URL HTTP và https cho URL HTTPS. Giá trị mô tả bộ lắng nghe proxy. Chúng có thể là các điểm cuối khác nhau nếu mạng cần tuyến riêng.

Giá trị proxy http:// dưới khóa https là có chủ đích. Requests yêu cầu bộ lắng nghe HTTP mở đường hầm CONNECT rồi thiết lập TLS với đích qua đó, theo chính sách đích và cổng của proxy. Đổi giá trị thành https:// yêu cầu TLS tới chính proxy; có thể thất bại nếu bộ lắng nghe đợi HTTP không mã hóa.

Hai con số thời gian chờ có nghĩa gì

timeout=(5, 15) đặt thời gian chờ kết nối và đọc. Nó không áp đặt hạn chót tổng cộng mười lăm giây. Dữ liệu đến định kỳ, nhiều địa chỉ và các lần thử kết nối có thể kéo dài thời gian đã trôi qua. Requests không đặt thời gian chờ chung nếu bạn bỏ thiết lập này; hãy chọn giới hạn phù hợp phản hồi và thêm hạn chót ở cấp ứng dụng nếu công việc cần ngân sách tổng thời gian nghiêm ngặt.

Xử lý lỗi ở giai đoạn nó xảy ra

try:
    response = requests.get(
        "https://example.com/",
        proxies=proxies,
        timeout=(5, 15),
    )
    response.raise_for_status()
except requests.exceptions.ProxyError as error:
    print("Proxy setup failed:", type(error).__name__)
except requests.exceptions.Timeout:
    print("A configured timeout expired")
except requests.exceptions.HTTPError as error:
    print("HTTP status:", error.response.status_code)

CONNECT bị từ chối có thể gây ProxyError trước khi có phản hồi của đích. Nhánh HTTPError theo sau phản hồi đã nhận có trạng thái lỗi; Timeout nghĩa là một giới hạn đã đặt hết hạn. Kiểm tra chuỗi ngoại lệ thiết lập kết nối ở máy cục bộ, bỏ điểm cuối chứa thông tin đăng nhập và URL riêng tư trước khi chia sẻ.

Giữ xác minh chứng chỉ được bật. Nếu mạng được cho phép dùng CA riêng hoặc chặn bắt có quản lý, hãy cấp tài liệu tin cậy dự kiến thay vì tắt xác minh.

Mục nhập rõ ràng theo từng yêu cầu điều khiển các tuyến được cung cấp ở đây, nhưng lược đồ bị bỏ qua vẫn có thể chịu tác động của việc tìm proxy từ môi trường. Khi chuyển lời gọi vào Session có thể tái sử dụng, hãy quyết định cách biến môi trường, mặc định Session và ghi đè theo yêu cầu tương tác; tái sử dụng kết nối và chính sách định tuyến là hai lựa chọn riêng.

Bài viết liên quan