ອັກສອນພິເສດໃນລະຫັດຜ່ານພຣັອກຊີ
ເຂົ້າລະຫັດ URL ສຳລັບຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານແຍກກັນ ເພື່ອບໍ່ໃຫ້ @, ສອງຈ້ຳ, ສັນຍາລັກ / ແລະ # ເຮັດໃຫ້ URL ເສຍ.
ລະຫັດຜ່ານມີ @ ຫຼື # ອາດເຮັດໃຫ້ 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 ທີ່ມີຂໍ້ມູນເຂົ້າໃຊ້ໃນບັນທຶກຮ່ວມ ແລະໄຟລ໌ຕົ້ນສະບັບ.