Muunna IPv4 ip:port:user:password -tietueet Requestsia varten
Jäsennä ip:port:user:password rajatulla jaolla ja koodaa tunnistetietojen osat ennen välityspalvelukartan rakentamista.
HTTP-välityspalveluntarjoajan IPv4-muodolle ip:port:user:password muunna kentät ennen kuin annat arvon Requestsille:
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}
Rajattu jako säilyttää salasanan sisällä olevat ylimääräiset kaksoispisteet. Pelkkien rivinloppujen poistaminen estää myös niiden välilyöntien hiljaisen poistamisen, jotka voivat kuulua tunnistetietoihin.
Koodaa käyttäjänimi ja salasana erillisinä URL-komponentteina. Raakasalasanan @-merkkiä ei saa sekoittaa välityspalvelimen isäntänimeä edeltävään erottimeen. Tämä funktio odottaa raakoja tunnistetietoja; jos välität jo koodattua tekstiä, prosenttimerkki voi koodautua uudelleen.
Palautettu kartta valitsee tämän välityspalvelimen HTTP- ja HTTPS-kohteille. Avain kuten http://192.0.2.10 tarkoittaa Requestsissa muuta: se valitsee reitin kyseiselle kohdeisännälle. Se ei ole indeksi välityspalvelinten joukkoon.
Jäsennin hyväksyy tarkoituksella vain ilmoitetun IPv4-muodon. Se ei kata kaksoispisteitä sisältäviä käyttäjänimiä eikä hakasulkeettomia IPv6-osoitteita; ne tarvitsevat yksiselitteisen syöttömuodon. Pidä luodut tunnistetietoja sisältävät URL-osoitteet poissa tavallisista lokeista.