ລະຫັດຜ່ານມີ @ ຫຼື # ອາດເຮັດໃຫ້ URL ພຣັອກຊີທີ່ປະກອບດ້ວຍມືເສຍ ເຖິງແມ່ນຂໍ້ມູນເຂົ້າໃຊ້ຖືກຕ້ອງ. ອັກສອນເຫຼົ່ານີ້ມີຄວາມໝາຍໃນ URL ຢູ່ແລ້ວ ລູກຂ່າຍຈຶ່ງອາດອ່ານບາງສ່ວນຂອງລະຫັດຜ່ານເປັນຊື່ໂຮສ ຫຼື fragment.

ເຂົ້າລະຫັດ URL ໃຫ້ສອງຊ່ອງຂໍ້ມູນເຂົ້າໃຊ້ແຍກກັນ

ຕົວຢ່າງນີ້ຮັກສາຕົວແບ່ງໂຄງສ້າງ URL ແລະເຂົ້າລະຫັດ URL ສະເພາະຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານ:

from urllib.parse import quote

username = "user@team"
password = "p:a/ss#?"
proxy_url = (
    "http://"
    + quote(username, safe="")
    + ":"
    + quote(password, safe="")
    + "@203.0.113.10:8080"
)

ໃຊ້ຈຸດປາຍແລະຂໍ້ມູນເຂົ້າໃຊ້ຈິງຂອງທ່ານ. ທີ່ຢູ່ທີ່ສະແດງເປັນຕົວຢ່າງເອກະສານ. ອາກິວເມນ safe ທີ່ຫວ່າງສຳຄັນ: quote ປົກກະຕິບໍ່ escape ສັນຍາລັກ / ແຕ່ສັນຍາລັກນີ້ໃນຊ່ອງຂໍ້ມູນເຂົ້າໃຊ້ຕ້ອງຖືກເຂົ້າລະຫັດ URL.

ຢ່າເຂົ້າລະຫັດ URL ພຣັອກຊີທັງໝົດ. ການປ່ຽນຕົວແບ່ງສະກີມແລະ @ ລະຫວ່າງຂໍ້ມູນເຂົ້າໃຊ້ກັບໂຮສ ທຳລາຍໂຄງສ້າງທີ່ຕ້ອງການຮັກສາ. ຢ່າປ່ຽນລະຫັດຜ່ານທີ່ເຂົ້າລະຫັດ URL ແລ້ວເປັນຄັ້ງທີສອງ.

ໃຊ້ຜົນກັບ Requests

import requests

response = requests.get(
    "https://example.com/",
    proxies={"http": proxy_url, "https": proxy_url},
    timeout=(5, 15),
)
response.raise_for_status()

ຖ້າຄຳຮ້ອງຂໍຍັງລົ້ມເຫຼວ ກວດວ່າພຣັອກຊີປະຕິເສດການເຂົ້າ ຫຼືລູກຂ່າຍລົ້ມເຫຼວກ່ອນໃນການວິເຄາະຫຼືຕໍ່. ຄຳຮ້ອງຂໍຢືນຢັນຕົວຕົນ 407 ແລະ URL ບໍ່ຖືກຕ້ອງເປັນຄົນລະບັນຫາ.

HTTPX ສາມາດແຍກການຢືນຢັນຕົວຕົນ

ອອບເຈັກ Proxy ຂອງ HTTPX ສາມາດຮັບຈຸດປາຍແລະຂໍ້ມູນເຂົ້າໃຊ້ເປັນອາກິວເມນແຍກກັນ:

import httpx

proxy = httpx.Proxy(
    "http://203.0.113.10:8080",
    auth=("user@team", "p:a/ss#?"),
)

with httpx.Client(proxy=proxy, trust_env=False, timeout=15) as client:
    response = client.get("https://example.com/")
    response.raise_for_status()

ນີ້ຫຼີກລ່ຽງການສ້າງສ່ວນ userinfo ເອງ. ມັນບໍ່ໄດ້ອິນຄຣິບຂໍ້ມູນເຂົ້າໃຊ້ແຍກຈາກການຕໍ່ພຣັອກຊີ ແລະບໍ່ໄດ້ເລືອກວິທີຢືນຢັນທີ່ທຸກບໍລິການຮອງຮັບ.

ຖ້າລາຍການຟຣີໃຫ້ແຕ່ IP ແລະພອດ ຕົວຢ່າງນີ້ບໍ່ໄດ້ໃຫ້ຂໍ້ມູນເຂົ້າໃຊ້ເລີ່ມຕົ້ນ. ໃຊ້ການຢືນຢັນເມື່ອຜູ້ດຳເນີນງານໃຫ້ບັນຊີຈິງເທົ່ານັ້ນ. ຢ່າເກັບ URL ທີ່ມີຂໍ້ມູນເຂົ້າໃຊ້ໃນບັນທຶກຮ່ວມ ແລະໄຟລ໌ຕົ້ນສະບັບ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ