Bekerja dengan gambar di Python memberi Anda berbagai kemampuan pengembangan, mulai dari mengunduh gambar dengan URL hingga mengambil atribut foto. Tapi, bagaimana tepatnya Anda bisa mendapatkan akses ke foto-foto ini?
Pada artikel ini, Anda akan membahas beberapa metode berbeda yang digunakan untuk mengunduh gambar dengan Python
Prasyarat
Untuk mendapatkan manfaat penuh dari posting ini, Anda harus memiliki yang berikut ini
✅ Beberapa pengalaman dengan Python 2 atau Python 3 🐍
✅ Python 3 diinstal di mesin lokal Anda. Ada satu skrip yang kompatibel dengan Python 2 di bagian ini
Menggunakan Python untuk mengunduh dan menyimpan gambar dari URL
Menggunakan Paket Permintaan
Menjadi klien HTTP paling populer di Python, paket Permintaan elegan dan mudah digunakan untuk pemula. Banyak pengembang menganggapnya sebagai metode yang nyaman untuk mengunduh semua jenis file dengan Python
Dengan asumsi Anda telah menginstal Python 3 ke lingkungan lokal Anda, buat direktori file_name = input('Save image as (string):') #prompt user for file name 2 dan tambahkan file_name = input('Save image as (string):') #prompt user for file name 3. Setelah file itu dibuka, instal dan impor paket-paket berikut
import requests # request img from web import shutil # save img locally
Setelah Anda mengimpor file tersebut, buat variabel file_name = input('Save image as (string):') #prompt user for file name 4 yang disetel ke pernyataan file_name = input('Save image as (string):') #prompt user for file name 5 yang meminta URL gambar
url = input('Please enter an image URL (string):') #prompt user for img url
Selain itu, buat variabel lain yang juga disetel ke pernyataan input, file_name = input('Save image as (string):') #prompt user for file name 6
file_name = input('Save image as (string):') #prompt user for file name
Di baris kode berikutnya, terapkan metode file_name = input('Save image as (string):') #prompt user for file name 7 dari modul permintaan untuk mengambil gambar. Metode ini akan mengambil dua parameter, variabel file_name = input('Save image as (string):') #prompt user for file name _4 yang Anda buat sebelumnya, dan file_name = input('Save image as (string):') #prompt user for file name 9 dengan menambahkan argumen kedua ini untuk menjamin tidak akan terjadi interupsi saat metode berjalan
res = requests.get(url, stream = True)
Metode res = requests.get(url, stream = True) _0 untuk menulis gambar Anda sebagai nama file, membuat file secara lokal dalam mode tulis-biner dan menyimpannya secara lokal dengan res = requests.get(url, stream = True) 1. Meskipun tidak perlu, ada baiknya untuk memeriksa apakah gambar berhasil diambil menggunakan Kode Status Permintaan dalam pernyataan bersyarat
if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved')
Skrip Anda yang sudah selesai akan terlihat seperti ini
import requests # request img from web import shutil # save img locally url = input('Please enter an image URL (string):') #prompt user for img url file_name = input('Save image as (string):') #prompt user for file_name res = requests.get(url, stream = True) if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved')
Jalankan skrip Anda dengan menjalankan perintah berikut di terminal Anda
python requests_python_img_dl.py
Gambar yang Anda unduh akan disimpan ke direktori res = requests.get(url, stream = True) 2 yang baru dibuat. Selamat, sekarang Anda dapat meminta semua unduhan gambar yang diinginkan hati Anda 💖
Mengunduh Gambar Menggunakan urllib
Metode lain yang disukai untuk mengunduh data dengan Python adalah melalui res = requests.get(url, stream = True) 3, sebuah paket yang mengumpulkan beberapa modul untuk bekerja dengan URL, termasuk
urllib. permintaan pembukaan dan pembacaan
urllib. parse untuk mengurai URL
urllib. kesalahan untuk setiap pengecualian yang diajukan oleh urllib. meminta
urllib. robotparser untuk parsing robot. file txt
Untuk mempelajari lebih lanjut tentang modul res = requests.get(url, stream = True) _3, lihat kembali dokumentasi , tetapi sekarang setelah Anda mengetahui dasar-dasarnya, saatnya untuk memulai
Jika res = requests.get(url, stream = True) _3 tidak ada di lingkungan Anda saat ini, instal dengan mengeksekusi kode di bawah ini
pip install urllib
Perhatikan bahwa jika Anda menggunakan Python 2, sayangnya, kode ini tidak akan berfungsi dengan lingkungan Anda, tetapi akhir bagian ini menyertakan skrip yang kompatibel dengan Python 2
Setelah res = requests.get(url, stream = True) _3 diinstal, buat direktori baru untuk proyek Anda, res = requests.get(url, stream = True) 7. Langkah ini tidak perlu diulang jika sudah dibuat pada bagian sebelumnya. Di dalam direktori itu buat folder gambar, serta file res = requests.get(url, stream = True) 8. Arahkan ke file res = requests.get(url, stream = True) _8 Anda, dan di bagian atas masukkan baris kode berikut untuk mengimpor paket res = requests.get(url, stream = True) 3
import urllib.request
Dengan modul Anda diimpor, tugas Anda adalah membuat skrip ramah pengguna yang memungkinkan Anda mengunduh gambar dengan cepat dan teratur. Pertama, buat variabel file_name = input('Save image as (string):') #prompt user for file name _4 dari fungsi input
url = input('Please enter image URL (string):')
Kemudian putuskan apa yang Anda ingin simpan sebagai file gambar Anda, menggunakan pernyataan input lain
url = input('Please enter an image URL (string):') #prompt user for img url 0
Dengan dua variabel ini yang menyimpan data yang diperlukan untuk mengunduh dan mengatur file gambar yang baru Anda buat, tulis kode yang menyimpan gambar tersebut. Mulailah dengan mendefinisikan fungsi yang menggunakan tiga parameter, variabel file_name = input('Save image as (string):') #prompt user for file name 4 Anda, if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') 3 yang ditunjuk tempat Anda ingin menyimpan gambar, dan file_name = input('Save image as (string):') #prompt user for file name 6 yang ditetapkan sebelumnya
url = input('Please enter an image URL (string):') #prompt user for img url 1
Di dalam fungsi buat if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') _5 ke tempat gambar akan disimpan. Path lengkap gambar akan menjadi if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') _3 dengan file_name = input('Save image as (string):') #prompt user for file name 6 digabungkan, dan string if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') 8 ditambahkan di akhir. *Sama halnya jika Anda ingin menyimpan gambar Anda sebagai PNG, Anda akan menggunakan if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') 9
url = input('Please enter an image URL (string):') #prompt user for img url 2
Untuk membuat kode yang benar-benar mengunduh gambar, Anda harus mengintegrasikan import requests # request img from web import shutil # save img locally url = input('Please enter an image URL (string):') #prompt user for img url file_name = input('Save image as (string):') #prompt user for file_name res = requests.get(url, stream = True) if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') 0 dan import requests # request img from web import shutil # save img locally url = input('Please enter an image URL (string):') #prompt user for img url file_name = input('Save image as (string):') #prompt user for file_name res = requests.get(url, stream = True) if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') 1 yang akan mengunduh dan menyimpan gambar secara otomatis berdasarkan argumen yang diberikan, ✨untungnya Anda baru saja membuatnya. ✨
url = input('Please enter an image URL (string):') #prompt user for img url _3
Panggil fungsi itu di akhir skrip Anda yang seharusnya mirip dengan ini
url = input('Please enter an image URL (string):') #prompt user for img url _4
Saat Anda memanggil import requests # request img from web import shutil # save img locally url = input('Please enter an image URL (string):') #prompt user for img url file_name = input('Save image as (string):') #prompt user for file_name res = requests.get(url, stream = True) if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') 2 Anda harus melewati tiga argumen lagi, kali ini akan menjadi file_name = input('Save image as (string):') #prompt user for file name 4 Anda, jalur file yang merupakan folder import requests # request img from web import shutil # save img locally url = input('Please enter an image URL (string):') #prompt user for img url file_name = input('Save image as (string):') #prompt user for file_name res = requests.get(url, stream = True) if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') 4 yang Anda buat di awal, dan nama_file yang Anda pilih
Percaya atau tidak, itu saja. Selama Anda berada di direktori import requests # request img from web import shutil # save img locally url = input('Please enter an image URL (string):') #prompt user for img url file_name = input('Save image as (string):') #prompt user for file_name res = requests.get(url, stream = True) if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') _5 Anda, jalankan skrip Anda di terminal Anda dengan kode di bawah ini
url = input('Please enter an image URL (string):') #prompt user for img url 5
Kerja bagus. Anda baru saja mengunduh gambar pertama Anda dengan Python menggunakan paket res = requests.get(url, stream = True) 3 😎
⛔︎ Jika Anda belum memutakhirkan Python 3, Anda mungkin menerima beberapa kesalahan terkait import requests # request img from web import shutil # save img locally url = input('Please enter an image URL (string):') #prompt user for img url file_name = input('Save image as (string):') #prompt user for file_name res = requests.get(url, stream = True) if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') 0, kode berikut harus kompatibel dengan Python 2
url = input('Please enter an image URL (string):') #prompt user for img url _6
*Tidak seperti Python 3, versi 2 tidak mendukung paket import requests # request img from web import shutil # save img locally url = input('Please enter an image URL (string):') #prompt user for img url file_name = input('Save image as (string):') #prompt user for file_name res = requests.get(url, stream = True) if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') 0. Sebagai alternatif, Anda dapat mengimpor
urllib2 dan gunakan import requests # request img from web import shutil # save img locally url = input('Please enter an image URL (string):') #prompt user for img url file_name = input('Save image as (string):') #prompt user for file_name res = requests.get(url, stream = True) if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') _9 untuk membaca url gambar, lalu unduh ke lingkungan lokal Anda. Namun, gambar sekarang akan disimpan langsung ke direktori import requests # request img from web import shutil # save img locally url = input('Please enter an image URL (string):') #prompt user for img url file_name = input('Save image as (string):') #prompt user for file_name res = requests.get(url, stream = True) if res.status_code == 200: with open(file_name,'wb') as f: shutil.copyfileobj(res.raw, f) print('Image sucessfully Downloaded: ',file_name) else: print('Image Couldn\'t be retrieved') 5 alih-alih folder python requests_python_img_dl.py 1. *
Menggunakan Modul Wget
Selain paket python requests_python_img_dl.py _2 dan python requests_python_img_dl.py 3, Anda juga dapat mengunduh gambar dengan Python dengan menggunakan modul wget. Jika Anda telah membuat python requests_python_img_dl.py 4 navigasi di dalam, jika tidak, buatlah sekarang. Di dalam direktori buat file python requests_python_img_dl.py _5 dan impor modul python requests_python_img_dl.py 6 seperti itu
url = input('Please enter an image URL (string):') #prompt user for img url _7
Setelah Anda menginstal dan mengimpor, atur variabel file_name = input('Save image as (string):') #prompt user for file name 4 sama dengan pernyataan input yang menetapkan alamat gambar
url = input('Please enter image URL (string):')
Memanfaatkan python requests_python_img_dl.py 8 meneruskan variabel file_name = input('Save image as (string):') #prompt user for file name 4 sebagai argumen, dan mengaturnya sama dengan variabel file_name = input('Save image as (string):') #prompt user for file name 6 Anda akan dapat mengaksesnya setelah itu
url = input('Please enter an image URL (string):') #prompt user for img url _9
Skrip lengkapnya harus seperti ini
file_name = input('Save image as (string):') #prompt user for file name 0
Itu saja. Anda dapat menjalankan skrip Anda 🏃
file_name = input('Save image as (string):') #prompt user for file name _1
Kami juga menulis artikel tentang menggunakan Python dengan wget , ini adalah cara hebat lainnya untuk menggunakan wget dengan Python
Kesimpulan
Seperti biasa, masing-masing metode ini membawa pro dan kontra. Jika Anda memiliki masalah dalam menginstal paket Permintaan atau menginginkan lebih sedikit ketergantungan pada program Anda, urllib mungkin menjadi pilihan terbaik Anda. Namun, modul Permintaan telah menjadi cara yang populer dan andal untuk mengunduh apa pun dengan Python, bahkan dokumentasi urllib merekomendasikannya sebagai antarmuka klien HTTP tingkat tinggi
Jika Anda mencari lebih banyak cara untuk mengunduh gambar dan jenis file dari web dengan Python, saya mendorong Anda untuk melihat posnya,
Saya harap Anda menemukan posting ini menyenangkan. Anda juga dapat mengakses kode sumber di sini. Selamat Menggores. 🐝
Sumber daya tambahan
- Permintaan paket
- modul wget
Maxine adalah seorang insinyur perangkat lunak dan penulis teknis yang bersemangat, yang senang menghabiskan waktu luangnya menggabungkan pengetahuannya tentang teknologi lingkungan ke dalam pengembangan web.