Python ile Google Görsellerini Kazıyın ve İndirin
Yayınlanan: 2023-01-02Web scraping kullanımının yaygınlaşması kullanım alanlarını oldukça artırmıştır. Günümüzde birçok AI uygulaması, web kazıma veri kümelerini güncel verilerle düzenli olarak besler. Hedef web sitelerinden yapay zeka uygulamalarının veri setlerine düzenli ve kesintisiz bir veri akışı vardır.
İlgili Yazı: Yapay Zekanın Müşteri Başarısının Geleceğine Etkisi
Görüntü işleme, yapay zeka uygulamalarının en popüler alanlarından biridir. Görüntü işleme, bilgisayarların görüntülerdeki ve videolardaki nesneleri ve insanları tanımlamasını ve anlamasını sağlamaya odaklanan bir bilgisayar bilimi alanıdır. Diğer yapay zeka türleri gibi, görüntü işleme de insan yeteneklerini kopyalayan görevleri gerçekleştirmeyi ve otomatikleştirmeyi amaçlar. Bu durumda görüntü işleme, insanların hem gördüklerini hem de gördüklerini anlamlandırma biçimlerini kopyalamaya çalışır.
Görüntü işleme projeleri başta olmak üzere birçok alanda algoritmaların geliştirilmesi ve hata paylarının azaltılması için gerekli olan veriler web scraping ile elde edilmektedir. Bu yazımızda görüntü işleme projelerinde sıklıkla kullanılan bir uygulama geliştireceğiz. Google Görseller'i Python programlama dili ile kazıyıp indireceğiz. Öyleyse başlayalım.
Proje Kurulumu
Öncelikle masaüstünde bir klasör açalım. Bu dosya yolunda bir terminal açalım ve aşağıdaki komutu çalıştırarak gerekli kütüphaneleri yükleyelim.
bs4 pip kurulum istekleri |
Gerekli kütüphaneleri kurduktan sonra klasör içerisinde 'index.py' isimli bir dosya oluşturalım.
Ayrıca Okuyun: ChatGPT – İşletmeler İçin Etkileri
kod
Oluşturduğumuz 'index.py' dosyasına aşağıdaki kodları yapıştıralım.
içe aktarma istekleri, yeniden, json, urllib.request BS4'ten BeautifulSoup'u içe aktarın başlıklar = { queryParameters = {“q”: “marvel”, “tbm”: “isch”, “hl”: “en”, “gl”: “us”, “ijn”: “0” } target_image_path = ".isv-r.PNCib.MSM1fd.BUooTd" html = request.get(“https://www.google.com/search”, params=queryParameters, headers=headers, timeout=30) google_images = [] def scrape_and_download_google_images(): images_data_in_json = convert_image_to_json() matched_image_data = re.findall(r'\”b-GRID_STATE0\”(.*)sideChannel:\s?{}}', images_data_in_json) remove_matched_thumbnails = remove_matched_get_thumbnails(matched_google_image_data=matched_image_data) eşleşen_çözünürlük_images = re.findall(r”(?:'|,),\[\”(https:|http.*?)\”,\d+,\d+\]”, remove_matched_thumbnails) tam_çözünürlük_images = get_Definition_image(matched_Definition_images=matched_ Resolution_images) dizin için, (image_data, image_link) in enumerate(zip(soup.select(target_image_path), full_ Resolution_images), start=1): append_image_to_list(image_data=image_data, image_link=image_link) print(f'{index}.resim indirilmeye başlandı') download_image(image_link=resim_bağlantısı, dizin=dizin) print(f'{index}.resim başarıyla indirildi') print(f'kazınmış ve indirilmiş resimler: {google_images}') def remove_matched_get_thumbnails(matched_google_image_data): def get_ Resolution_image(matched_ Resolution_images): def convert_image_to_json(): def append_image_to_list(image_data, image_link): def download_image(resim_bağlantısı, dizin): scrape_and_download_google_images() |
Kodları inceleyecek olursak öncelikle statik değerlere sahip alanlara bakalım. Aşağıdaki alanlar statik değerler olarak tanımlanır. Scraplamak ve indirmek istediğimiz görselin ismini ve özelliklerini queryParams değişkeni ile belirtiyoruz.
başlıklar = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, Gecko gibi) Chrome/103.0.5060.114 Safari/537.36" } queryParameters = {“q”: “marvel”, “tbm”: “isch”, “hl”: “en”, “gl”: “us”, “ijn”: “0” } target_image_path = ".isv-r.PNCib.MSM1fd.BUooTd" html = request.get(“https://www.google.com/search”, params=queryParameters, headers=headers, timeout=30) google_images = [] |
scrape_and_download_google_images() yöntemi, akışın başladığı yerdir. hedeflenen görseller kazınır ve ardından belirttiğimiz klasöre indirilir.
def scrape_and_download_google_images(): images_data_in_json = convert_image_to_json() matched_image_data = re.findall(r'\”b-GRID_STATE0\”(.*)sideChannel:\s?{}}', images_data_in_json) remove_matched_thumbnails = remove_matched_get_thumbnails(matched_google_image_data=matched_image_data) eşleşen_çözünürlük_images = re.findall(r”(?:'|,),\[\”(https:|http.*?)\”,\d+,\d+\]”, remove_matched_thumbnails) ![]() tam_çözünürlük_images = get_Definition_image(matched_Definition_images=matched_ Resolution_images) dizin için, (image_data, image_link) in enumerate(zip(soup.select(target_image_path), full_ Resolution_images), start=1): append_image_to_list(image_data=image_data, image_link=image_link) print(f'{index}.resim indirilmeye başlandı') download_image(image_link=resim_bağlantısı, dizin=dizin) print(f'{index}.resim başarıyla indirildi') print(f'kazınmış ve indirilmiş resimler: {google_images}') |
Kazınmış görüntünün klasöre indirilmesi, download_image(image_link=image_link, index=index) yöntemiyle yapılır. Bu yöntemde scraped edilen görsel, projenin dosya konumuna daha önce eklediğimiz “Scraped_Images” içerisine kaydedilir.
Not: Uygulamayı çalıştırmadan önce proje yapısında “Scraped_Images” klasörü oluşturun.
def download_image(resim_bağlantısı, dizin): opener=urllib.request.build_opener() opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, Gecko gibi) Chrome/101.0.4951.54 Safari/537.36')] urllib.request.install_opener(açıcı) urllib.request.urlretrieve(image_link, f'Scraped_Images/Image_{index}.jpg') |
Ayrıca Okuyun: İşletmeler İçin Hizmet Olarak Blockchain'in Uygulamaları ve Faydaları Nelerdir?
Koşmak
Uygulamayı çalıştırmak için dosya konumunda bir terminal açıp aşağıdaki komutu çalıştıralım.
piton index.py |
Uygulama çalıştıktan sonra uygulamanın konsoluna aşağıdaki bilgiler yazdırılır.
1. resim indirilmeye başlandı 1. resim başarıyla indirildi 2. resim indirilmeye başlandı 2. resim başarıyla indirildi 3. resim indirilmeye başlandı 3. resim başarıyla indirildi 4. resim indirilmeye başlandı 4. resim başarıyla indirildi 5. resim indirilmeye başlandı 5. resim başarıyla indirildi 6. resim indirilmeye başlandı 6. resim başarıyla indirildi 7. resim indirilmeye başlandı 7. resim başarıyla indirildi […] 48. resim indirilmeye başlandı 48. resim başarıyla indirildi kazınmış ve indirilmiş resimler: |
İndirilen görüntüleri kontrol etmek için “Scraped_Images” dosyasına bakalım.
Ayrıca Okuyun: Şirket Türleri ve Başlangıç İşletmenizi Nasıl Dahil Edebilirsiniz?
Çözüm
Nedense ihtiyaç duyulan Google Görseller'in scraping ve download işlemlerini python ile yaptık. İhtiyacınız olan görselleri herhangi bir kod yazmadan Google'dan almak istiyorsanız Zenserp API'yi keşfedin. İşte sürekli güncellenen güçlü ve harika belgeleri.