Download fia in proxy mei Requests en iter_content
Brûk in Requests-antwurd stadichoan, wylst gewoane statuskontrôles, opromjen en in bewust belied foar dielútfier bewarre bliuwe.
with session.get(url, stream=True, proxies=routes,
timeout=(5, 30)) as response:
response.raise_for_status()
with open(part_path, 'wb') as output:
for chunk in response.iter_content(chunk_size=64 * 1024):
if chunk:
output.write(chunk)
Brûk dit patroan mei de besteande Requests-sesje fan de applikaasje, de proxy-rûtes, de URL en it tydlike útfierpaad. Foar in iepenbiere HTTP-rûte leveret de HTTP-proxylist kandidaatadressen foar dyn proxy-mapping. It streamingpatroan brûkt it lichem stadichoan ynstee fan response.content te heljen en dan in twadde objekt fan folsleine grutte te skriuwen.
Hâld dy eigenskip by de hiele download: stream=True stelt it lichem út, mar tagong ta response.content dêrnei kin it noch altyd hielendal yn it ûnthâld sammelje. De stikgrutte fan iter_content is in lêsfoarkar, gjin fersyk om HTTP-chunked-oerdrachtskodearring by de webside of de proxy.
De kontekstbehearder fan it antwurd slút it antwurd sels as in skriuwbewurking mislearret of de applikaasje betiid stopet. It yllustrative timeoutpear is gjin echte deadline foar de hiele oerdracht; stel it libbensdoerbelied fan de download apart yn neffens ferlet.
Kontrolearje nei suksesfol gebrûk it artefakt dat de applikaasje ferwachtet foardat jo de definitive namme publisearje. By ûnderbrekking hâld it dielbestân allinnich ûnder in bewust ferfettingsbelied, mei metadata dy't de fiere foarstelling identifisearje. In net-lege tydlik bestân is gjin suksesfolle download.