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
Lepaskan: 2024-12-18 10:19:13
asal
267 orang telah melayarinya

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan