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

Bagaimana untuk memuat turun imej dengan cekap menggunakan perpustakaan permintaan Python?

Linda Hamilton
Linda Hamiltonasal
2025-01-02 22:12:411024semak imbas

How to Efficiently Download Images Using Python's Requests Library?

Memuat turun Imej dengan Permintaan

Memuat turun imej daripada web menggunakan modul permintaan Python boleh menjadi tugas yang mudah. Walau bagaimanapun, apabila beralih daripada urllib2 kepada permintaan, adalah penting untuk memahami perbezaan dalam atribut yang digunakan untuk mendapatkan semula data imej.

Pada mulanya, kod menggunakan urllib2 membaca imej menggunakan img.read(), manakala yang dikehendaki pendekatan dengan permintaan mempunyai img = r.raw.read(). Ini adalah salah kerana r.raw ialah objek fail, bukan data imej sebenar.

Untuk menyelesaikannya, terdapat dua penyelesaian yang berdaya maju:

  • Menggunakan Objek Fail Response.raw:

    Tetapkan decode_content kepada True untuk memaksa penyahmampatan termampat maklum balas. Ini membolehkan anda menstrim data ke objek fail menggunakan shutil.copyfileobj().

    import requests
    import shutil
    
    r = requests.get(url, 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:

    Kaedah ini memastikan penyahmampatan data.

    r = requests.get(url, stream=True)
    if r.status_code == 200:
        with open(path, 'wb') as f:
            for chunk in r:
                f.write(chunk)

    Sebagai alternatif, anda boleh menentukan saiz bongkah tersuai menggunakan Response.iter_content().

    r = requests.get(url, 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 ('wb') untuk mengelakkan baris baharu daripada diterjemahkan. Selain itu, tetapkan strim=True untuk menghalang keseluruhan imej daripada dimuat turun ke dalam memori.

Atas ialah kandungan terperinci Bagaimana untuk memuat turun imej dengan cekap menggunakan perpustakaan 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