Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk memuat turun imej dengan cekap dengan modul permintaan Python?

Bagaimana untuk memuat turun imej dengan cekap dengan modul permintaan Python?

DDD
DDDasal
2024-12-18 10:19:13272semak imbas

How to Efficiently Download Images with Python's Requests Module?

Memuat turun Imej Menggunakan Modul Permintaan dalam Python

Dalam usaha memuat turun dan menyimpan imej daripada web menggunakan modul permintaan, seorang pembangun menghadapi kesukaran. Kod yang diberikan pada mulanya berfungsi, tetapi kod yang diubah suai menggunakan permintaan mengakibatkan ralat.

Ralat timbul kerana penggunaan atribut yang salah daripada respons permintaan. Untuk berjaya mendapatkan semula imej menggunakan permintaan, terdapat dua pilihan:

Menggunakan respons.raw File Object

Menggunakan atribut response.raw mengembalikan data mentah bagi tindak balas. Menyahkod respons termampat (cth., menggunakan GZIP atau mengempis) tidak dikendalikan secara automatik. Untuk memaksa penyahmampatan, tetapkan atribut decode_content kepada True. Selepas itu, gunakan shutil.copyfileobj() untuk menstrim data ke objek fail.

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)

Lelaran Atas Respons

Pendekatan alternatif melibatkan lelaran ke atas respons , yang memastikan penyahmampatan data.

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)

Menyesuaikan saiz bongkah boleh dilakukan menggunakan Kaedah Response.iter_content().

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)

Ingat untuk membuka fail destinasi dalam mod binari untuk menghalang terjemahan baris baharu dan tetapkan strim=True untuk mengelakkan muat turun penuh intensif memori.

Atas ialah kandungan terperinci Bagaimana untuk memuat turun imej dengan cekap dengan modul permintaan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn