Requests ਲਈ IPv4 ip:port:user:password ਐਂਟਰੀਆਂ ਬਦਲੋ
ip:port:user:password ਨੂੰ ਸੀਮਿਤ ਵੰਡ ਨਾਲ ਪਾਰਸ ਕਰੋ ਅਤੇ ਪ੍ਰੌਕਸੀ ਨਕਸ਼ਾ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦੇ ਹਿੱਸੇ ਐਨਕੋਡ ਕਰੋ।
ਜੇ 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 ਆਮ ਲੌਗਾਂ ਤੋਂ ਦੂਰ ਰੱਖੋ।