aiohttp dokumentuje obsługę proxy HTTP poprzez opcje żądania. Punkt końcowy SOCKS wymaga implementacji, która mówi SOCKS. Zmiana portu adresu URL proxy na 1080 nie zapewnia tej implementacji.

Wewnątrz funkcji async użyj łącznika dostarczanego przez utrzymywany projekt aiohttp-socks:

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()

Zakłada to, że pakiet łącznika jest już dostępny i zgodny z wersją aiohttp w aplikacji. Punkt końcowy jest przykładowy; lista proxy SOCKS5 oferuje publicznych kandydatów dla adresu URL łącznika. Skonfiguruj zasady limitu czasu i rozmiaru odpowiedzi dla rzeczywistego obciążenia.

Stare odpowiedzi odnoszą się do różnych pakietów i nazw łączników: aiosocks, aiosocksy i aiohttp-socks nie są wymiennymi ścieżkami importu. Przeczytaj wymagania i przykład dla pakietu, który jest faktycznie używany. Połączenie klasy z jednego projektu z argumentami innego może się nie udać jeszcze przed próbą jakiegokolwiek połączenia proxy.

Trzymaj łącznik i czas życia sesji razem oraz sprawdzaj zachowanie rozwiązywania nazw hostów tam, gdzie ma to znaczenie. Przekazanie adresu URL SOCKS do niepowiązanej opcji proxy HTTP nie zastępuje udokumentowanej ścieżki łącznika.

Powiązane artykuły