Zeskrob i pobierz obrazy Google za pomocą Pythona
Opublikowany: 2023-01-02Rosnące rozpowszechnienie web scrapingu znacznie zwiększyło obszary jego wykorzystania. Obecnie wiele aplikacji AI regularnie zasila zbiory danych zbieranych w sieci aktualnymi danymi. Następuje regularny i nieprzerwany przepływ danych z docelowych serwisów do zbiorów danych aplikacji sztucznej inteligencji.
Powiązany wpis: Wpływ sztucznej inteligencji na przyszłość sukcesu klienta
Przetwarzanie obrazu to jeden z najpopularniejszych obszarów zastosowań sztucznej inteligencji. Przetwarzanie obrazu to dziedzina informatyki, która koncentruje się na umożliwianiu komputerom identyfikowania i rozumienia obiektów i osób na obrazach i filmach. Podobnie jak inne rodzaje sztucznej inteligencji, przetwarzanie obrazu ma na celu wykonywanie i automatyzację zadań, które odzwierciedlają ludzkie możliwości. W tym przypadku przetwarzanie obrazu próbuje skopiować zarówno sposób, w jaki ludzie widzą, jak i sposób, w jaki rozumieją to, co widzą.
Dane potrzebne do opracowania algorytmów i redukcji marginesów błędów w wielu dziedzinach, zwłaszcza w projektach przetwarzania obrazu, uzyskuje się metodą web scrapingu. W tym artykule opracujemy aplikację, która jest często używana w projektach przetwarzania obrazu. Zeskrobujemy i pobierzemy Obrazy Google za pomocą języka programowania Python. Więc zacznijmy.
Konfiguracja projektu
Najpierw otwórzmy folder na pulpicie. Otwórzmy terminal w tej ścieżce pliku i zainstalujmy niezbędne biblioteki, uruchamiając poniższe polecenie.
żądania instalacji pip bs4 |
Po zainstalowaniu niezbędnych bibliotek utwórzmy plik o nazwie „index.py” w folderze.
Kod
Wklejmy następujące kody do utworzonego przez nas pliku „index.py”.
żądania importu, re, json, urllib.request z bs4 importuj BeautifulSoupheaders = { „User-Agent”: „Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, jak Gecko) Chrome/103.0.5060.114 Safari/537.36” }queryParameters = {„q”: „cud”, „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) usunięte_matched_thumbnails = remove_matched_get_thumbnails(matched_google_image_data=dopasowane_dane_obrazu) dopasowane_obrazy_rozdzielczosci = re.findall(r”(?:'|,),\[\”(https:|http.*?)\”,\d+,\d+\]”, usunięto_dopasowane_miniatury) obrazy w pełnej_rozdzielczości = pobierz_obraz w rozdzielczości (dopasowana_rozdzielczość_obrazów = dopasowane_obrazy w rozdzielczości) dla indeksu, (image_data, image_link) w 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}. obraz zaczął się pobierać') download_image(image_link=image_link, index=index) print(f'{index}. pomyślnie pobrano obraz') print(zeskrobane i pobrane obrazy: {google_images}') zdecydowanie usuń_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(image_link, index): scrape_and_download_google_images() |
Jeśli badamy kody, najpierw spójrzmy na pola z wartościami statycznymi. Następujące pola są zdefiniowane jako wartości statyczne. Nazwę i właściwości obrazu, który chcemy zeskrobać i pobrać, określamy za pomocą zmiennej queryParams.
Przeczytaj także: ChatGPT – jego implikacje dla firm
nagłówki = { „User-Agent”: „Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, jak Gecko) 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” target_image_base_html_path = „.VFACy.kGQAp.sMi44c.lNHeqe.WGvvNb” html = request.get("https://www.google.com/search", params=queryParameters, headers=headers, timeout=30) google_images = [] |
Metoda scrape_and_download_google_images() to miejsce, w którym rozpoczyna się strumień. wybrane obrazy są zeskrobywane, a następnie pobierane do określonego przez nas folderu.
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) usunięte_matched_thumbnails = remove_matched_get_thumbnails(matched_google_image_data=dopasowane_dane_obrazu) dopasowane_obrazy_rozdzielczosci = re.findall(r”(?:'|,),\[\”(https:|http.*?)\”,\d+,\d+\]”, usunięto_dopasowane_miniatury) obrazy w pełnej_rozdzielczości = pobierz_obraz w rozdzielczości (dopasowana_rozdzielczość_obrazów = dopasowane_obrazy w rozdzielczości) dla indeksu, (image_data, image_link) w 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}. obraz zaczął się pobierać') download_image(image_link=image_link, index=index) print(f'{index}. pomyślnie pobrano obraz') print(zeskrobane i pobrane obrazy: {google_images}') |
Pobranie zeskrobanego obrazu do folderu odbywa się w metodzie download_image(image_link=image_link, index=index). Obraz zeskrobany tą metodą jest zapisywany w „Scraped_Images”, który wcześniej dodaliśmy do lokalizacji pliku projektu.
Uwaga: Przed uruchomieniem aplikacji utwórz folder „Scraped_Images” w strukturze projektu
def download_image(image_link, index): otwieracz=urllib.request.build_opener() opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, jak Gecko) Chrome/101.0.4951.54 Safari/537.36′)] urllib.request.install_opener(otwieracz) urllib.request.urlretrieve(image_link, f'Scraped_Images/Image_{index}.jpg') |
Przeczytaj także: Jakie są zastosowania i zalety Blockchain-as-a-service dla firm?
Uruchomić
Aby uruchomić aplikację, otwórzmy terminal w lokalizacji pliku i uruchom następujące polecenie.
python index.py |
Po uruchomieniu aplikacji na konsoli aplikacji drukowane są następujące informacje.
1. obraz zaczął się pobierać 1. pomyślnie pobrano obraz 2. obraz zaczął się pobierać 2. pomyślnie pobrano obraz 3. obraz zaczął się pobierać 3. pomyślnie pobrano obraz 4. obraz zaczął się pobierać 4. pomyślnie pobrano obraz 5. obraz zaczął się pobierać 5. pomyślnie pobrano obraz 6. obraz zaczął się pobierać 6. pomyślnie pobrano obraz 7. obraz zaczął się pobierać 7. pomyślnie pobrano obraz […] 48. obraz zaczął się pobierać 48. pomyślnie pobrano obraz zeskrobany i pobrany obraz: [ { „image_title”: „Komiksy Marvela – Wikipedia”, „image_source_link”: „https://en.wikipedia.org/wiki/Marvel_Comics”, „image_link”: „https://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/Marvel_Logo.svg/1200px-Marvel_Logo.svg.png” }, { „image_title”: „Wszechświat Marvela – Wikipedia”, „image_source_link”: „https://en.wikipedia.org/wiki/Marvel_Universe”, „image_link”: „https://upload.wikimedia.org/wikipedia/en/1/19/Marvel_Universe_%28Civil_War%29.jpg” }, { „image_title”: „Marvel.com | Oficjalna witryna filmów Marvela, postaci, komiksów, programów telewizyjnych, „image_source_link”: „https://www.marvel.com/”, „image_link”: „https://i.annihil.us/u/prod/marvel/images/OpenGraph-TW-1200×630.jpg” }, { „image_title”: „Marvel Entertainment – YouTube”, „image_source_link”: „https://www.youtube.com/c/marvel”, „image_link”: „https://yt3.ggpht.com/fGvQjp1vAT1R4bAKTFlaSbdsfdYFDwAzVjeRVQeikH22bvHWsGULZdwIkpZXktcXZc5gFJuA3w=s900-ck-c0x00ffffff-no-rj” }, { „image_title”: „Filmy i programy Marvela | Disney+”, „image_source_link”: „https://www.disneyplus.com/brand/marvel”, „image_link”: „https://prod-ripcut-delivery.disney-plus.net/v1/variant/disney/DA2E198288BFCA56AB53340211B38DE7134E40E4521EDCAFE6FFB8CD69250DE9/scale?width=2880&aspectRatio=1.78&format=jpeg” }, { „image_title”: „Wprowadzenie do Marvela dla początkujących | PRZEWODOWY”, 'image_source_link': 'https://www.wired.com/2012/03/an-intro-to-marvel-for-newbies/', „image_link”: „https://media.wired.com/photos/5955ceabcbd9b77a41915cf6/master/pass/marvel-characters.jpg” }, { „image_title”: „Jak oglądać każdy film Marvela w kolejności fabularnej – Parada: rozrywka, przepisy, zdrowie, życie, wakacje”, 'image_source_link': 'https://parade.com/1009863/alexandra-hurtado/marvel-movies-order/', „image_link”: „https://parade.com/.image/t_share/MTkwNTgxMjkxNjk3NDQ4ODI4/marveldisney.jpg” }, { „image_title”: „Komiksy Marvela | Historia, postacie, fakty i filmy | Britannica”, „image_source_link”: „https://www.britannica.com/topic/Marvel-Comics”, „image_link”: „https://cdn.britannica.com/62/182362-050-BD31B42D/Scarlett-Johansson-Black-Widow-Chris-Hemsworth-Thor.jpg” }, { „image_title”: „Kapitan Marvel (2019) – IMDb”, 'image_source_link': 'https://www.imdb.com/title/tt4154664/', „image_link”: „https://m.media-amazon.com/images/M/MV5BMTE0YWFmOTMtYTU2ZS00ZTIxLWE3OTEtYTNiYzBkZjViZThiXkEyXkFqcGdeQXVyODMzMzQ4OTI@._V1_FMjpg_UX1000_.jpg” }, […] ] |
Spójrzmy na plik „Scraped_Images”, aby sprawdzić pobrane obrazy.
Przeczytaj także: Rodzaje korporacji i jak włączyć swój start-up
Wniosek
Zrobiliśmy skrobanie i pobieranie obrazów Google, które z jakiegoś powodu były potrzebne, za pomocą Pythona. Jeśli chcesz uzyskać potrzebne obrazy od Google bez pisania kodu, zapoznaj się z interfejsem API Zenserp. Oto jego potężna i wspaniała dokumentacja, która jest stale aktualizowana.