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 ചങ്ക് ട്രാൻസ്ഫർ എൻകോഡിംഗിനുള്ള അഭ്യർത്ഥനയല്ല.
പ്രതികരണത്തിന്റെ കോൺടെക്സ്റ്റ് മാനേജർ എഴുത്ത് പരാജയപ്പെട്ടാലും ആപ്പ് നേരത്തെ നിർത്തിയാലും പ്രതികരണം അടയ്ക്കുന്നു. ഉദാഹരണത്തിലെ ടൈംഔട്ട് ജോഡി മുഴുവൻ കൈമാറ്റത്തിനുമുള്ള യഥാർത്ഥ സമയപരിധിയല്ല; ആവശ്യാനുസരണം ഡൗൺലോഡിന്റെ ആയുസ്സ് നയം വെവ്വേറെ സജ്ജമാക്കുക.
വിജയകരമായ ഉപയോഗത്തിന് ശേഷം, അന്തിമ പേര് പ്രസിദ്ധീകരിക്കുന്നതിന് മുമ്പ് ആപ്പ് പ്രതീക്ഷിക്കുന്ന ആർട്ടിഫാക്ട് പരിശോധിക്കുക. തടസ്സം ഉണ്ടായാൽ, ഭാഗിക ഫയൽ ബോധപൂർവമായ പുനരാരംഭ നയത്തിന് കീഴിൽ മാത്രം സൂക്ഷിക്കുക, ദൂരെയുള്ള പ്രാതിനിധ്യം തിരിച്ചറിയുന്ന മെറ്റാഡാറ്റയോടൊപ്പം. ശൂന്യമല്ലാത്ത താൽക്കാലിക ഫയൽ വിജയകരമായ ഡൗൺലോഡല്ല.