
Python Requests — thiết lập proxy
Giới thiệu công cụ
Requests là thư viện HTTP client đồng bộ phổ biến nhất trong hệ sinh thái Python, được xây dựng trên nền `urllib3` với cơ chế quản lý phiên và nhóm kết nối. Requests là thư viện Python cho yêu cầu HTTP với phiên, cookie, xác thực và nhóm kết nối. Có thể đặt proxy HTTP(S) trong yêu cầu hoặc phiên; SOCKS cần thư viện bổ sung. Phù hợp cho ứng dụng API và tác vụ không cần dựng trang bằng trình duyệt.
Tính năng chính
Duy trì phiên Session & tái sử dụng kết nối: Đối tượng `requests.Session()` tự động lưu giữ cookie, header và thông tin xác thực qua nhiều yêu cầu, đồng thời tái sử dụng kết nối TCP/TLS (Keep-Alive) để giảm độ trễ.
- Phiên và lưu cookie:Requests xử lý tham số HTTP, header, biểu mẫu, JSON, tải tệp, xác thực và phản hồi. Session giữ cookie và nhóm kết nối giữa các yêu cầu, phù hợp chương trình cần trạng thái đăng nhập hoặc truy cập dịch vụ nhiều lần.
- Nhóm kết nối:Thư viện xử lý phản hồi HTTP nhưng không chạy JavaScript trang. API và HTML trả trực tiếp là đầu vào phù hợp; nội dung tạo bởi mã trình duyệt cần giải pháp dựng bổ sung. Phân biệt này giúp chọn đúng cách tiếp cận.
Quy trình phù hợp
Chương trình API, tải định kỳ và kiểm tra kết nối nên đặt timeout và xử lý mã trạng thái cùng ngoại lệ. Proxy có thể gán theo yêu cầu hoặc Session; SOCKS cần phụ thuộc tùy chọn. Kết nối proxy thành công và dịch vụ đích phản hồi thành công là hai việc cần kiểm tra riêng.
- Tích hợp REST API & thu thập HTML nhẹ: Phù hợp cho các đường ống dữ liệu gọi API, tải tệp và trích xuất HTML tĩnh (thường kết hợp BeautifulSoup hoặc lxml) mà không tốn tài nguyên chạy trình duyệt.
- Hỗ trợ truyền trực tiếp proxy HTTP/HTTPS vào từng yêu cầu hoặc `Session.proxies`, và hỗ trợ SOCKS5 khi cài thêm `requests[socks]`; khuyến nghị dùng proxy trung tâm dữ liệu cho các tác vụ HTTP tốc độ cao.