Konverto hyrjet IPv4 ip:port:user:password për Requests
Ndaj ip:port:user:password me një ndarje të kufizuar dhe kodo komponentët e kredencialeve përpara se të ndërtosh hartën e proxy-t.
Për formatin IPv4 ip:port:user:password të një ofruesi proxy HTTP, konverto fushat përpara se t i japësh vlerën 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}
Ndarja e kufizuar ruan çdo dy pika shtesë brenda fjalëkalimit. Heqja vetëm e mbarimeve të rreshtave shmang gjithashtu heqjen e heshtur të hapësirave që mund t i përkasin një kredenciali.
Kodo emrin e përdoruesit dhe fjalëkalimin si komponentë të veçantë të URL-së. Një @ në një fjalëkalim të papërpunuar nuk duhet ngatërruar me ndarësin përpara hostit të proxy-t. Ky funksion pret kredenciale të papërpunuara; kalimi i tekstit të koduar tashmë mund të kodojë sërish shenjën e përqindjes.
Harta e kthyer zgjedh këtë proxy për destinacionet HTTP dhe HTTPS. Një çelës si http://192.0.2.10 ka kuptim tjetër në Requests: zgjedh një rrugë për atë host destinacioni. Nuk është indeks për një grup serverësh proxy.
Analizuesi e pranon qëllimisht formatin IPv4 të deklaruar. Nuk mbulon emra përdoruesish me dy pika ose adresa IPv6 pa kllapa; ato kërkojnë një format hyrjeje pa paqartësi. Mbaj URL-të e gjeneruara me kredenciale jashtë regjistrave rutinë.