Umbreyttu IPv4 færslum ip:port:user:password fyrir Requests
Þátttu ip:port:user:password með takmörkuðu sundurgreiningu og kóðaðu auðkennisþættina áður en proxy-kortið er byggt.
Fyrir IPv4-snið HTTP-proxyveitanda ip:port:user:password skaltu umbreyta reitunum áður en gildinu er komið til 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}
Takmörkuð sundurgreining varðveitir öll viðbótartvípunktur inni í lykilorðinu. Að fjarlægja aðeins línuendur kemur einnig í veg fyrir að bil sem gætu tilheyrt auðkenni séu fjarlægð hijóðlega.
Kóðaðu notandanafnið og lykilorðið sem aðskilda URL-þætti. Ekki má rugla @ í hráu lykilorði við aðskilnaðarmerkið fyrir framan proxy-þjóninn. Þessi aðgerð gerir ráð fyrir hráum auðkennum; ef þú sendir þegar kóðaðan texta getur prósentumerkið kóðast aftur.
Kortið sem skilað er velur þennan proxy fyrir HTTP- og HTTPS-áfangastaði. Lykill eins og http://192.0.2.10 hefur aðra merkingu í Requests: hann velur leið fyrir þann áfangastað. Þetta er ekki vísitala í safn proxy-þjóna.
Greinandinn samþykkir viljandi aðeins tilgreint IPv4-snið. Hann nær ekki yfir notandanöfn með tvípunktum né IPv6-vistföng án sviga; þau þurfa ótvírætt inntakssnið. Haltu búnum URL-slóðum með auðkennum utan venjubundinna skráa.