Sakaza ukulanda kwe-proxy kufayela nge-Python urllib
Sakaza ukulanda kwe-proxy kufayela lesikhashana bese ushicilela igama lokugcina lefayela ngemva kokuqedwa kwekhophi.
import os
import shutil
from urllib.request import ProxyHandler, build_opener
proxy = 'http://proxy.example.net:8080'
opener = build_opener(ProxyHandler({
'http': proxy,
'https': proxy,
}))
temporary = 'archive.zip.part'
destination = 'archive.zip'
with opener.open('https://downloads.example.net/archive.zip',
timeout=20) as response:
with open(temporary, 'wb') as output:
shutil.copyfileobj(response, output)
os.replace(temporary, destination)Shintsha ama-URL namagama amafayela kube ngawokusetshenziswa. Ekulandeni okugunyaziwe kwefayela lomphakathi ngaphandle kokuqinisekiswa kwe-proxy, uhlu lwama-proxy e-HTTP lungahlinzeka ngezindawo zokugcina ezingase zibe khona ze-URL ye-proxy. Lesi sivuli esikhethekile se-urllib sisebenzisa i-proxy ye-HTTP endaweni ye-HTTPS ngokuqinisekiswa kwesitifiketi okuvamile. Asifaki isivuli somhlaba wonke; ukuqinisekiswa, uma kudingeka, kudinga ukusethwa kwaso okusekelwayo.
copyfileobj ikhopha ngezingcezu. Ukuphuma kumongo wefayela kuyayivala futhi kukhiphe imibhalo egciniwe ngaphambi kokuba os.replace ifake igama lokugcina.
Uma isicelo noma ikhophi iphakamisa iphutha, ukuqamba kabusha kuyeqiwa. Ifayela elingaphelele lingase lihlale ngokwenqubomgomo yokuhlanza, futhi lokhu kugeleza kushiya ifayela lokugcina elikhona lingathintekile kulokho kwehluleka. Uma kuphumelela, ukushintsha kungabhalela phezulu lelo fayela lokugcina, ngakho khetha inqubomgomo ngamabomu.
Sebenzisa amagama esikhashana ahlukile emisebenzini eyenzeka ngasikhathi sinye. Izinto zesivuli ezihlukene azivikeli imisebenzi ehlanganyela indlela efanayo ye-.part.
Ukusethwa kwemizuzwana engu-20 kukhawulela imisebenzi ye-socket esekelwayo, hhayi isikhathi esiphelele sokulanda. Isikhathi sokugcina somsebenzi wonke sidinga ukuphathwa okuhlukile kuhlelo lokusebenza. Ukuqedwa kokudluliswa nakho kuhlukile ekuhloleni ifayela elilandiwe.