aiohttp-socks ਨਾਲ aiohttp ਵਿੱਚ SOCKS ਰੂਟਿੰਗ
ਹਟਾਏ ਗਏ ਕਨੈਕਟਰ ਕਲਾਸਾਂ ਵਾਲੀ ਪੁਰਾਣੀ aiohttp ਪ੍ਰੌਕਸੀ ਉਦਾਹਰਨ ਕਾਪੀ ਕਰਨ ਦੀ ਥਾਂ SOCKS ਸਮਝਣ ਵਾਲਾ ਅਨੁਕੂਲ ਕਨੈਕਟਰ ਵਰਤੋ।
aiohttp ਆਪਣੇ ਬੇਨਤੀ ਵਿਕਲਪਾਂ ਰਾਹੀਂ HTTP ਪ੍ਰੌਕਸੀ ਸਮਰਥਨ ਦਾ ਦਸਤਾਵੇਜ਼ ਬਣਾਉਂਦਾ ਹੈ। SOCKS ਅੰਤ ਬਿੰਦੂ ਨੂੰ SOCKS ਬੋਲਣ ਵਾਲਾ ਲਾਗੂਕਰਨ ਚਾਹੀਦਾ ਹੈ। ਪ੍ਰੌਕਸੀ URL ਦਾ ਪੋਰਟ 1080 ਕਰਨ ਨਾਲ ਉਹ ਲਾਗੂਕਰਨ ਨਹੀਂ ਮਿਲਦਾ।
async ਫੰਕਸ਼ਨ ਦੇ ਅੰਦਰ, ਸੰਭਾਲੇ ਜਾਂਦੇ 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()ਇਹ ਮੰਨਦਾ ਹੈ ਕਿ ਕਨੈਕਟਰ ਪੈਕੇਜ ਪਹਿਲਾਂ ਹੀ ਉਪਲਬਧ ਹੈ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ aiohttp ਸੰਸਕਰਣ ਨਾਲ ਅਨੁਕੂਲ ਹੈ। ਅੰਤ ਬਿੰਦੂ ਉਦਾਹਰਨ ਹੈ; SOCKS5 ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਕਨੈਕਟਰ URL ਲਈ ਜਨਤਕ ਉਮੀਦਵਾਰ ਦਿੰਦੀ ਹੈ। ਅਸਲ ਕੰਮ ਲਈ ਟਾਈਮਆਊਟ ਅਤੇ ਜਵਾਬ-ਆਕਾਰ ਨੀਤੀ ਸੰਰਚਿਤ ਕਰੋ।
ਪੁਰਾਣੇ ਜਵਾਬ ਵੱਖ-ਵੱਖ ਪੈਕੇਜਾਂ ਅਤੇ ਕਨੈਕਟਰ ਨਾਵਾਂ ਦਾ ਜ਼ਿਕਰ ਕਰਦੇ ਹਨ: aiosocks, aiosocksy ਅਤੇ aiohttp-socks ਆਪਸ ਵਿੱਚ ਬਦਲੇ ਜਾ ਸਕਣ ਵਾਲੇ ਆਯਾਤ ਮਾਰਗ ਨਹੀਂ ਹਨ। ਅਸਲ ਵਿੱਚ ਵਰਤੇ ਜਾਂਦੇ ਪੈਕੇਜ ਦੀਆਂ ਲੋੜਾਂ ਅਤੇ ਉਦਾਹਰਨ ਪੜ੍ਹੋ। ਇੱਕ ਪ੍ਰੋਜੈਕਟ ਦੀ ਕਲਾਸ ਨੂੰ ਦੂਜੇ ਦੇ ਆਰਗੂਮੈਂਟਾਂ ਨਾਲ ਜੋੜਨਾ ਕਿਸੇ ਵੀ ਪ੍ਰੌਕਸੀ ਕਨੈਕਸ਼ਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਫੇਲ੍ਹ ਹੋ ਸਕਦਾ ਹੈ।
ਕਨੈਕਟਰ ਅਤੇ ਸੈਸ਼ਨ ਦੀ ਉਮਰ ਨੂੰ ਇਕੱਠੇ ਰੱਖੋ, ਅਤੇ ਜਿੱਥੇ ਮਹੱਤਵਪੂਰਨ ਹੋਵੇ ਉੱਥੇ ਹੋਸਟਨਾਮ-ਹੱਲ ਵਿਵਹਾਰ ਦੀ ਜਾਂਚ ਕਰੋ। SOCKS URL ਨੂੰ ਅਸੰਬੰਧਿਤ HTTP ਪ੍ਰੌਕਸੀ ਵਿਕਲਪ ਨੂੰ ਦੇਣਾ ਕਨੈਕਟਰ ਦੇ ਦਸਤਾਵੇਜ਼ੀ ਮਾਰਗ ਦਾ ਬਦਲ ਨਹੀਂ ਹੈ।