ពាក្យសម្ងាត់មាន @ ឬ # អាចបំផ្លាញ URL ប្រូកស៊ីដែលផ្គុំដោយដៃ ទោះបីព័ត៌មានចូលត្រឹមត្រូវក៏ដោយ។ តួអក្សរទាំងនេះមានន័យរួចហើយក្នុង URL ដូច្នេះកម្មវិធីភ្ញៀវអាចបកស្រាយផ្នែកពាក្យសម្ងាត់ជាឈ្មោះម៉ាស៊ីន ឬ fragment។

អ៊ិនកូដវាលព័ត៌មានចូលទាំងពីរដាច់ដោយឡែក

ឧទាហរណ៍នេះរក្សាសញ្ញាបែងចែករចនាសម្ព័ន្ធ 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 ប្រូកស៊ីទាំងមូល។ ការអ៊ិនកូដសញ្ញាបែងចែកគ្រោង និង @ រវាងព័ត៌មានចូលនិងម៉ាស៊ីន បំផ្លាញរចនាសម្ព័ន្ធដែលចង់រក្សា។ កុំអ៊ិនកូដពាក្យសម្ងាត់ដែលអ៊ិនកូដរួចជាលើកទីពីរ។

ប្រើលទ្ធផលជាមួយ 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 ដែលមានព័ត៌មានចូលក្នុងកំណត់ហេតុចែករំលែក និងឯកសារប្រភព។

អត្ថបទពាក់ព័ន្ធ