如何使用Requests高效下載圖片
使用Python的requests模組從網路下載圖片時,了解正確使用回應元素。本文解決了使用哪個屬性進行圖像下載的問題。
一種方法涉及存取 response.raw 檔案物件。此方法允許直接存取圖像數據,但需要配置decode_content屬性以確保壓縮響應的正確解碼。隨後,可以使用shutil.copyfileobj()函數將資料串流傳輸到所需的檔案。以下是一個範例:
import requests import shutil r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: r.raw.decode_content = True shutil.copyfileobj(r.raw, f)
或者,您可以迭代回應以確保資料解壓縮。此方法保證以較小的區塊處理資料。
import requests r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: for chunk in r: f.write(chunk)
您可以使用 Response.iter_content() 方法自訂區塊大小:
import requests r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: for chunk in r.iter_content(1024): f.write(chunk)
記住開啟目標以二進位模式儲存檔案以避免任何意外的轉換。此外,設定stream=True參數可以防止整個影像一次下載到記憶體中。透過遵循這些指南,您可以使用 Python 的 requests 模組有效地下載映像。
以上是使用Python的Requests模組下載映像最有效的方法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!