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ë.

Artikuj të ngjashëm