aiohttp ghi lại hỗ trợ proxy HTTP thông qua các tùy chọn yêu cầu. Một điểm cuối SOCKS cần một triển khai nói được SOCKS. Đổi cổng của URL proxy sang 1080 không cung cấp triển khai đó.

Bên trong một hàm async, dùng connector do dự án aiohttp-socks được duy trì cung cấp:

import aiohttp
from aiohttp_socks import ProxyConnector

connector = ProxyConnector.from_url('socks5://203.0.113.10:1080')
async with aiohttp.ClientSession(connector=connector) as session:
    async with session.get('https://example.com/') as response:
        body = await response.read()

Điều này giả định gói connector đã có sẵn và tương thích với phiên bản aiohttp trong ứng dụng. Điểm cuối chỉ mang tính minh họa; danh sách proxy SOCKS5 cung cấp các ứng viên công khai cho URL của connector. Hãy cấu hình chính sách thời gian chờ và kích thước phản hồi cho khối lượng công việc thực tế.

Các câu trả lời cũ đề cập đến nhiều gói và tên connector khác nhau: aiosocks, aiosocksy và aiohttp-socks không phải là những đường dẫn nhập có thể thay thế cho nhau. Hãy đọc yêu cầu và ví dụ của gói thực sự được dùng. Kết hợp lớp của dự án này với đối số của dự án khác có thể thất bại trước khi thử bất kỳ kết nối proxy nào.

Giữ connector và thời gian sống của phiên đi cùng nhau, và kiểm tra hành vi phân giải tên máy chủ ở nơi quan trọng. Chuyển một URL SOCKS cho một tùy chọn proxy HTTP không liên quan không thay thế cho tuyến đường đã được ghi lại của connector.

Bài viết liên quan