ਜੇ HTTP ਪ੍ਰੌਕਸੀ ਪ੍ਰਦਾਤਾ ਦਾ IPv4 ਫਾਰਮੈਟ ip:port:user:password ਹੈ, ਤਾਂ ਮੁੱਲ Requests ਨੂੰ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਫੀਲਡ ਬਦਲੋ:

from ipaddress import IPv4Address
from urllib.parse import quote

def proxy_map(line):
    host, port, user, password = line.rstrip('\r\n').split(':', 3)
    host = str(IPv4Address(host))
    port = int(port)
    if not 1 <= port <= 65535:
        raise ValueError('Proxy port is out of range')
    credentials = quote(user, safe='') + ':' + quote(password, safe='')
    url = f'http://{credentials}@{host}:{port}'
    return {'http': url, 'https': url}

ਸੀਮਿਤ ਵੰਡ ਪਾਸਵਰਡ ਅੰਦਰ ਕੋਈ ਵੀ ਵਾਧੂ ਕੋਲਨ ਸੰਭਾਲਦੀ ਹੈ। ਸਿਰਫ਼ ਲਾਈਨ ਅੰਤ ਹਟਾਉਣ ਨਾਲ ਉਹ ਖਾਲੀ ਥਾਂਵਾਂ ਚੁੱਪਚਾਪ ਨਹੀਂ ਹਟਦੀਆਂ ਜੋ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦਾ ਹਿੱਸਾ ਹੋ ਸਕਦੀਆਂ ਹਨ।

ਵਰਤੋਂਕਾਰ ਨਾਮ ਅਤੇ ਪਾਸਵਰਡ ਨੂੰ ਵੱਖਰੇ URL ਹਿੱਸਿਆਂ ਵਜੋਂ ਐਨਕੋਡ ਕਰੋ। ਕੱਚੇ ਪਾਸਵਰਡ ਵਿੱਚ @ ਨੂੰ ਪ੍ਰੌਕਸੀ ਹੋਸਟ ਤੋਂ ਪਹਿਲਾਂ ਵਾਲੇ ਵਿਭਾਜਕ ਨਾਲ ਨਹੀਂ ਮਿਲਾਉਣਾ ਚਾਹੀਦਾ। ਇਹ ਫੰਕਸ਼ਨ ਕੱਚੇ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦੀ ਆਸ ਕਰਦਾ ਹੈ; ਪਹਿਲਾਂ ਹੀ ਐਨਕੋਡ ਕੀਤਾ ਟੈਕਸਟ ਦੇਣ ਨਾਲ ਫ਼ੀਸਦੀ ਚਿੰਨ੍ਹ ਦੁਬਾਰਾ ਐਨਕੋਡ ਹੋ ਸਕਦਾ ਹੈ।

ਵਾਪਸ ਕੀਤਾ ਨਕਸ਼ਾ HTTP ਅਤੇ HTTPS ਮੰਜ਼ਿਲਾਂ ਲਈ ਇਹ ਪ੍ਰੌਕਸੀ ਚੁਣਦਾ ਹੈ। http://192.0.2.10 ਵਰਗੀ ਕੁੰਜੀ ਦਾ Requests ਵਿੱਚ ਹੋਰ ਅਰਥ ਹੈ: ਇਹ ਉਸ ਮੰਜ਼ਿਲ ਹੋਸਟ ਲਈ ਰਸਤਾ ਚੁਣਦੀ ਹੈ। ਇਹ ਪ੍ਰੌਕਸੀ ਸਰਵਰਾਂ ਦੇ ਸਮੂਹ ਲਈ ਸੂਚਕ ਅੰਕ ਨਹੀਂ ਹੈ।

ਪਾਰਸਰ ਜਾਣ-ਬੁੱਝ ਕੇ ਦੱਸਿਆ IPv4 ਫਾਰਮੈਟ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ। ਇਹ ਕੋਲਨ ਵਾਲੇ ਵਰਤੋਂਕਾਰ ਨਾਮ ਜਾਂ ਬਿਨਾਂ ਬਰੈਕਟ ਦੇ IPv6 ਪਤੇ ਨਹੀਂ ਕਵਰ ਕਰਦਾ; ਉਹਨਾਂ ਲਈ ਸਪਸ਼ਟ ਇਨਪੁੱਟ ਫਾਰਮੈਟ ਲੋੜੀਂਦਾ ਹੈ। ਬਣਾਏ ਗਏ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਵਾਲੇ URL ਆਮ ਲੌਗਾਂ ਤੋਂ ਦੂਰ ਰੱਖੋ।

ਸੰਬੰਧਿਤ ਲੇਖ