Untuk dapat menggunakan perpustakaan ini, Anda perlu mengaktifkan API pencarian kustom Google, menghasilkan kredensial kunci API dan mengatur proyek:
Kunjungi https://console.developers.google.com dan buat proyek.
Kunjungi https://console.developers.google.com/apis/library/customsearch.googleapis.com dan aktifkan "API Pencarian Kustom" untuk proyek Anda.
Kunjungi https://console.developers.google.com/apis/credentials dan menghasilkan kredensial kunci API untuk proyek Anda.
Kunjungi https://cse.google.com/cse/all dan di Formulir Web tempat Anda membuat/mengedit Opsi Pencarian Kustom Mesin Kustom Anda dan untuk opsi "Situs untuk mencari" Pilih "Cari seluruh web tetapi tekankan termasuk situs ".
Setelah menyiapkan akun dan proyek pengembang google Anda, Anda seharusnya diberikan kunci API pengembang dan Project CX.
Instal Paket dari PYPI.org:
> Pip Instal Google-Images-Search
# Tanpa variabel lingkungan:> gimages -k __your_dev_api_key__ -c __your_project_cx__ pencarian -Q anak anjing
# dengan variabel lingkungan:> ekspor gcs_developer_key = __ your_dev_api_key __> ekspor gcs_cx = __ your_project_cx __ >> gimages pencarian -q anak anjing
# Cari saja (tidak ada unduhan dan ubah ukuran):> Gimages Search -Q Puppies
# Cari dan unduh saja (tidak ada mengubah ukuran):> Gimages Search -Q Puppies -D/Path/On/Your/Drive/Where/Images/harus/be/diunduh
# Cari, Unduh dan Ubah Ukuran:> Gimages Search -Q Puppies -D / Path / -W 500 -H 500
Dari google_images_search Impor GoogleImagessearch# Anda dapat memberikan kunci API dan CX menggunakan argumen,# atau Anda dapat mengatur variabel lingkungan: gcs_developer_key, gcs_cxgis = googleimageSearch ('your_dev_api_key', 'your_project_cx')# Define Params Param untuk Param Daya Di bawah ini untuk referensi yang mudah.# Untuk param yang ditandai dengan '##':# - Multiselect saat ini tidak layak. Pilih satu opsi saja# - Param ini juga dapat dihilangkan dari _search_params jika Anda tidak ingin mendefinisikan value_search_params = {'q': '...', 'num': 10, 'filetype': 'jpg | gif | png ',' hak ':' cc_publicdomain | cc_attribute | cc_sharealike | cc_noncommercial | cc_nonderived ',' aman ':' aktif | tinggi | medium | off | safeundefined ', ##' imgtype ':' clipart | face | face | lineart | stock | stok | Foto | animasi | imgtypeundefined ', ##' imgsize ':' besar | ikon | besar | medium | kecil | xlarge | xxlarge | imgsizeundefined ', ##' imgdominantcolor ':' Hitam | Biru | Brown | Grey | Green | Orange | Orange | Merah Muda | Ungu | Merah | Teal | Putih | Kuning | ImgdominantColorundefined ', ##' ImgColortype ':' Warna | Gray | Mono | Trans | ImgColortypeundefined '##}#Ini hanya akan mencari gambar: GIS.Search (search_params = _search_params )# Ini akan mencari dan mengunduh: gis.search (search_params = _search_params, path_to_dir = '/path/')# Ini akan mencari, mengunduh dan mengubah ukuran: GIS.Search (search_params = _search_params, path_to_dir = '/Path/' = 500, Tinggi = 500) # Cari terlebih dahulu, lalu unduh dan ubah ukuran setelahnya: GIS.Search (search_params = _search_params) untuk gambar di GIS.Results (): Image.Url # Image Direct Urlimage.Referrer_url # Image Referrer URL (Sumber)) Image.Download ('/path/') # Unduh ImageImage.Resize (500, 500) # Ubah Ubah Ulang ImageImage.Path # Diunduh Jalur File Lokal
Terkadang Anda ingin menyimpan gambar dengan nama file pilihan Anda.
dari google_images_search Impor googleimagesearchgis = googleimageSearch ('your_dev_api_key', 'your_project_cx') _ search_params = {...} Gis.search (search_params = _search_params, path_to_dir = '... custom_image_name = 'my_image')
Batas API Google adalah 10 gambar per permintaan.
Itu berarti jika Anda menginginkan 123 gambar, itu akan dibagi secara internal menjadi 13 permintaan.
Perlu diingat bahwa mendapatkan 123 gambar akan memakan waktu lebih banyak jika validasi gambar diaktifkan.
Dari google_images_search Impor googleimagesearchgis = googleimageSearch ('your_dev_api_key', 'your_project_cx') _ search_params = {'q': '...', 'num': 123, }# Dapatkan 123 gambar pertama: gis.search (search_params = _search_params)# Ambil 123 gambar berikutnya dari pencarian gambar Google: gis.next_page () untuk gambar di gis.results (): ...
Setiap URL gambar divalidasi secara default.
Itu berarti bahwa setiap URL gambar akan diperiksa jika header dapat diambil dan divalidasi.
Dengan itu Anda tidak perlu waspada tentang URL gambar mana yang sebenarnya dapat diunduh atau tidak.
Kelemahannya adalah waktu yang diperlukan untuk divalidasi.
Jika lebih suka, Anda dapat mematikannya.
Dari google_images_search Impor GoogleImagessearch# Matikan validasi dengan "validate_images" agrumentgis = googleimageSearch ('your_dev_api_key', 'your_project_cx', validate_images = false)
Secara default, ProgressBar tidak diaktifkan.
Hanya di CLI Progressbar yang diaktifkan secara default menggunakan Pustaka Curses.
Dalam mode terprogram dapat diaktifkan dengan dua cara:
Menggunakan Mode Kontekstual (Kutukan)
Menggunakan fungsi ProgressBar khusus Anda
Dari google_images_search Impor GoogleImagessearch# Menggunakan Function ProgressBar Kustom Anda My_progressbar (url, progress): print (url + '' progress + '%') gis = googleimageSearch ('your_dev_api_key', 'your_project_cx', progressbar_fn = my. ..}gis.search(search_params=_search_params)# using contextual mode (Curses)with GoogleImagesSearch('your_dev_api_key', 'your_project_cx') as gis:_search_params = {...}gis.search(search_params=_search_params) ...
Dari google_images_search Impor googleimagessearch dari io impor bytesiofrom PIL Impor gambar# Dalam hal ini kami menggunakan PIL untuk menjaga bytesio sebagai objek gambar# dengan cara itu kami tidak perlu menunggu waktu penyimpanan / tulis disk. Memori# Contoh ini harus menampilkan 3 gambar anak anjing! GIS = GoogleImagessearch ('your_dev_api_key', 'your_project_cx') my_bytes_io = bytesio () gis.search ({'q': 'anak anjing', 'num': 3}) untuk gambar Di Gis.Results ():# Di sini kita memberi tahu objek Bytesio untuk kembali ke alamat 0MY_BYTES_IO.SEEK (0)# Ambil gambar mentah dataraw_image_data = image.get_raw_data ()# Fungsi ini menulis data gambar mentah ke objekimage.copy_to (ke ()# Fungsi menulis ke data gambar ke objectimage.copy_to (to ()# my_bytes_io, raw_image_data)# atau tanpa data mentah yang akan secara otomatis diambil# di dalam copy_to () methodImage.copy_to (my_bytes_io)# Kami kembali ke alamat 0 lagi sehingga PIL dapat membacanya dari awal hingga finishmy_bytes_io.seek (0)# Buat ObjectTEMP_IMG gambar sementara = Image.open (my_bytes_io) # Tampilkan di sistem default foto viewerTemp_img.show ()