Requests र iter_content प्रयोग गरी प्रोक्सीमार्फत डाउनलोड गर्नुहोस्
सामान्य स्थिति जाँच, सफाइ र आंशिक आउटपुटका लागि जानाजान बनाइएको नीति कायम राख्दै Requests प्रतिक्रिया क्रमशः उपभोग गर्नुहोस्।
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)
यो ढाँचा एप्लिकेसनको विद्यमान Requests सत्र, प्रोक्सी मार्गहरू, URL र अस्थायी आउटपुट मार्गसँग प्रयोग गर्नुहोस्। सार्वजनिक HTTP मार्गका लागि, HTTP प्रोक्सी सूचीले तपाईंको प्रोक्सी म्यापिङका लागि उम्मेदवार ठेगानाहरू दिन्छ। स्ट्रिमिङ ढाँचाले response.content प्राप्त गरेर त्यसपछि दोस्रो पूर्ण-आकारको वस्तु लेख्नुको सट्टा शरीर क्रमशः उपभोग गर्छ।
डाउनलोडभरि त्यो गुण कायम राख्नुहोस्: stream=True ले शरीर सार्छ, तर पछि response.content मा पहुँच गर्दा अझै सबै स्मृतिमा जम्मा गर्न सक्छ। iter_content को खण्ड आकार पढ्ने प्राथमिकता हो, वेबसाइट वा प्रोक्सीमा HTTP खण्डित स्थानान्तरण कोडिङको अनुरोध होइन।
प्रतिक्रियाको सन्दर्भ व्यवस्थापकले लेखन असफल भए पनि वा एप्लिकेसन चाँडै रोकिए पनि प्रतिक्रिया बन्द गर्छ। उदाहरणको टाइमआउट जोडी सम्पूर्ण स्थानान्तरणका लागि वास्तविक समयसीमा होइन; आवश्यकता अनुसार डाउनलोडको आयु नीति छुट्टै सेट गर्नुहोस्।
सफल उपभोगपछि, अन्तिम नाम प्रकाशित गर्नु अघि एप्लिकेसनले अपेक्षा गर्ने आर्टिफ्याक्ट जाँच्नुहोस्। अवरोध भएमा, आंशिक फाइल जानाजान बनाइएको पुनःसुरु नीतिअन्तर्गत मात्र राख्नुहोस्, दूरस्थ प्रस्तुति पहिचान गर्ने मेटाडाटासहित। खाली नभएको अस्थायी फाइल सफल डाउनलोड होइन।