Requests üçün IPv4 ip:port:user:password qeydlərini çevirin
ip:port:user:password dəyərini məhdud bölmə ilə təhlil edin və proxy xəritəsini qurmazdan əvvəl etimadnamə hissələrini kodlayın.
HTTP proxy təminatçısının IPv4 formatı ip:port:user:password üçün dəyəri Requests-ə verməzdən əvvəl sahələri çevirin:
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}
Məhdud bölmə parolun içindəki əlavə iki nöqtələri qoruyur. Yalnız sətir sonlarının silinməsi də etimadnamənin hissəsi ola biləcək boşluqların səssizcə silinməsinin qarşısını alır.
İstifadəçi adını və parolu ayrı URL komponentləri kimi kodlayın. Xam paroldakı @ işarəsi proxy hostundan əvvəlki ayırıcı ilə qarışdırılmamalıdır. Bu funksiya xam etimadnamə gözləyir; artıq kodlanmış mətn versəniz, faiz işarəsi yenidən kodlana bilər.
Qaytarılan xəritə bu proxy-ni HTTP və HTTPS təyinatları üçün seçir. http://192.0.2.10 kimi açar Requests-də başqa məna daşıyır: o, həmin təyinat hostu üçün marşrut seçir. Bu, proxy serverlər hovuzunun indeksi deyil.
Analizator qəsdən yalnız göstərilən IPv4 formatını qəbul edir. O, iki nöqtəli istifadəçi adlarını və mötərizəsiz IPv6 ünvanlarını əhatə etmir; bunlar üçün birmənalı giriş formatı lazımdır. Yaranan etimadnaməli URL-ləri adi jurnallardan kənarda saxlayın.