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 तुकडा-हस्तांतरण एन्कोडिंगची विनंती नाही.
प्रतिसादाचा संदर्भ-व्यवस्थापक लेखन अयशस्वी झाले किंवा अॅप लवकर थांबले तरी प्रतिसाद बंद करतो. उदाहरणातील टाइमआउट जोडी संपूर्ण हस्तांतरणासाठी वास्तविक वेळेची मुदत नाही; आवश्यकतेनुसार डाउनलोडचे आयुष्य धोरण स्वतंत्रपणे सेट करा.
यशस्वी वापरानंतर, अंतिम नाव प्रकाशित करण्यापूर्वी अॅप ज्या आर्टिफॅक्टची अपेक्षा करते ते तपासा. व्यत्यय आल्यास, आंशिक फाइल केवळ जाणूनबुजून ठरवलेल्या पुन्हा-सुरू धोरणाखाली ठेवा, दूरचे प्रतिनिधित्व ओळखणाऱ्या मेटाडेटासह. रिकामी नसलेली तात्पुरती फाइल ही यशस्वी डाउनलोड नाही.