Saya tahu URL gambar di Internet.
misalnya http://www.digimouth.com/news/media/2011/09/google-logo.jpg , yang berisi logo Google.
Sekarang, bagaimana saya bisa mengunduh gambar ini menggunakan Python tanpa benar-benar membuka URL di browser dan menyimpan file secara manual.
python
web-scraping
Pankaj Vatsa
sumber
sumber
Jawaban:
Python 2
Ini cara yang lebih mudah jika Anda ingin menyimpannya sebagai file:
Argumen kedua adalah jalur lokal tempat file harus disimpan.
Python 3
Seperti yang disarankan SergO, kode di bawah ini harus bekerja dengan Python 3
sumber
filename = link.split('/')[-1]
import urllib.request
danurllib.request.urlretrieve()
, karenanya.file01.jpg
akan berisi gambar Anda.sumber
open("file01.jpg", "wb")
Jika tidak, Anda dapat merusak gambar.urllib.urlretrieve
dapat menyimpan gambar secara langsung.Saya menulis sebuah skrip yang melakukan hal ini , dan tersedia di github saya untuk Anda gunakan.
Saya menggunakan BeautifulSoup untuk memungkinkan saya mem-parsing situs web apa pun untuk gambar. Jika Anda akan melakukan banyak pengikisan web (atau bermaksud menggunakan alat saya), saya sarankan Anda
sudo pip install BeautifulSoup
. Informasi tentang BeautifulSoup tersedia di sini .Untuk kenyamanan di sini adalah kode saya:
sumber
Ini bisa dilakukan dengan permintaan. Memuat halaman dan membuang konten biner ke file.
sumber
Python 3
urllib.request - Pustaka yang dapat diperluas untuk membuka URL
sumber
Solusi yang berfungsi dengan Python 2 dan Python 3:
atau, jika persyaratan tambahan
requests
dapat diterima dan jika itu adalah http (s) URL:sumber
Saya membuat skrip yang diperluas pada skrip Yup. Saya memperbaiki beberapa hal. Sekarang akan memotong 403: Masalah terlarang. Ini tidak akan crash ketika gambar gagal diambil. Mencoba menghindari pratinjau yang rusak. Itu mendapatkan url absolut yang tepat. Ini memberi lebih banyak informasi. Itu bisa dijalankan dengan argumen dari baris perintah.
sumber
Menggunakan perpustakaan permintaan
sumber
Ini jawaban yang sangat singkat.
sumber
Versi untuk Python 3
Saya menyesuaikan kode @madprops untuk Python 3
sumber
Sesuatu yang segar untuk Python 3 menggunakan Permintaan:
Komentar dalam kode. Fungsi siap pakai.
sumber
Jawaban terlambat, tetapi untuk
python>=3.6
Anda dapat menggunakan dload , yaitu:jika Anda membutuhkan gambar sebagai
bytes
, gunakan:instal menggunakan
pip3 install dload
sumber
sumber
TypeError: a bytes-like object is required, not 'Response'
. Pastihandler.write(img_data.content)
handler.write(img_data.read())
.