Pakua kupitia proksi kwa Requests na iter_content
Tumia jibu la Requests hatua kwa hatua huku ukihifadhi ukaguzi wa kawaida wa hali, usafishaji na sera ya makusudi kwa matokeo ya sehemu.
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)
Tumia mpangilio huu na kikao kilichopo cha Requests cha programu, njia za proksi, URL na njia ya matokeo ya muda. Kwa njia ya umma ya HTTP, orodha ya proksi za HTTP hutoa anwani za wagombea kwa ramani yako ya proksi. Mpangilio wa utiririshaji hutumia mwili hatua kwa hatua badala ya kupata response.content na kisha kuandika kitu cha pili cha ukubwa kamili.
Hifadhi sifa hiyo katika upakuaji wote: stream=True huahirisha mwili, lakini kufikia response.content baadaye bado kunaweza kukusanya wote kwenye kumbukumbu. Ukubwa wa kipande cha iter_content ni upendeleo wa kusoma, si ombi la usimbaji wa uhamishaji wa HTTP kwa vipande kwenye tovuti au proksi.
Msimamizi wa muktadha wa jibu hufunga jibu hata kama uandishi unashindikana au programu inasimama mapema. Jozi ya muda wa kusubiri inayoonyeshwa si tarehe ya mwisho ya saa halisi kwa uhamishaji wote; weka sera ya maisha ya upakuaji kando kadri inavyohitajika.
Baada ya matumizi yenye mafanikio, angalia kitu kinachotarajiwa na programu kabla ya kuchapisha jina lake la mwisho. Ikikatizwa, hifadhi faili ya sehemu chini ya sera ya makusudi ya kuendelea tu, pamoja na metadata inayotambulisha uwakilishi wa mbali. Faili ya muda isiyo tupu si upakuaji uliofanikiwa.