[PYTHON] Der Download von Google-Bildern hat nicht funktioniert, daher Unterstützung

Annahme

Das Befehlsbeispiel wurde in der Windows + Anaconda-Umgebung ausgeführt. Darüber hinaus sind einige Pfade, z. B. Kontonamen, leer. Lesen Sie sie daher entsprechend Ihrer Umgebung.

Fazit

Zunächst möchte ich Ihnen aus der Schlussfolgerung sagen, dass die Ursache darin liegt, dass das Scraping des offiziellen Tools aufgrund der Spezifikationsänderung der Google-Bildsuche nicht ordnungsgemäß funktioniert. Jemand hat eine PR für den Patch auf dem offiziellen GigHub veröffentlicht. Wenn Sie also die Quelle herunterladen und dann ausführen, können Sie sie ordnungsgemäß zum Laufen bringen.

Google Image Download funktioniert nicht!

Ich möchte Bilderkennung mit Tensorflow usw. durchführen und versuchen, Bilder zum Lernen zu sammeln https://qiita.com/too-ai/items/4fad0239b8b3c465fe6d https://qiita.com/Ikko_Kojima/items/4d943c60ff5e886a0544 Ich habe versucht, Bilder mit Google Image Download zu sammeln, indem ich auf die Seite hier verwiesen habe.

(base) PS C:\Users\*\Downloads\img> googleimagesdownload -k cat

Item no.: 1 --> Item name = cat
Evaluating...
Starting Download...


Unfortunately all 100 could not be downloaded because some images were not downloadable. 0 is all we got for this search filter!

Errors: 0


Everything downloaded!
Total errors: 0
Total time taken: 0.609447717666626 Seconds

Auf diese Weise trat kein Fehler auf und das Ergebnis war, dass das Verzeichnis erstellt wurde (Downloads \ KEYWORD in der Ausführungsumgebung), aber keine Dateien darunter gespeichert wurden.

Ich wusste nicht, was die Ursache war, aber ich fragte mich, ob ich einen Blick hineinwerfen sollte.

pip install google_images_download

nicht

git clone https://github.com/hardikvasa/google-images-download.git

Ich rannte los, um die Quelle zu finden und schaute mir den Inhalt an.

Ich bin neu in Python, aber zum Glück bestand diese Software tatsächlich nur aus einer ausführbaren Datei. Als ich anfing, die Quelle anhand der auf dem Bildschirm ausgegebenen Schlüsselwörter zu lesen, war der Punkt, der ein Problem darstellte Ich konnte es sofort identifizieren.

# Zeilen 714-724
    def _get_next_item(self,s):
        start_line = s.find('rg_meta notranslate')
        if start_line == -1:  # If no links are found then give an error!
            end_quote = 0
            link = "no_links"
            return link, end_quote
        else:
            start_line = s.find('class="rg_meta notranslate">')
            start_object = s.find('{', start_line + 1)
            end_object = s.find('</div>', start_object + 1)
            object_raw = str(s[start_object:end_object])

Rg_meta notranslate und {, die in diesem Bereich als Schlüsselwörter festgelegt sind, werden jedoch in den aktuellen Suchergebnissen nicht gefunden, und Bilddaten können nicht normal erfasst werden.

Zuerst dachte ich, ich könnte etwas tun, wenn ich die Schlüsselwörter hier selbst anpassen würde, aber ich wusste nicht, in welchem Zustand sie ausgeschnitten und der nachfolgenden Verarbeitung übergeben wurden, daher war es schwierig, also überprüfte ich die offizielle Website erneut. Jemand warf eine Pull-Anfrage für einen Patch.

Patch

https://github.com/Joeclinton1/google-images-download/tree/patch-1

Rufen Sie unter Klonen oder Herunterladen auf dieser Seite die URL und den Git-Klon ab oder laden Sie die ZIP-Datei herunter, rufen Sie die Quelle ab und führen Sie sie mit dieser Quelle aus. Ich habe es mit Git-Klon bekommen.

C:\Users\*\Downloads\img>git clone https://github.com/Joeclinton1/google-images-download.git gid-joeclinton
Cloning into 'gid-joeclinton'...
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 621 (delta 7), reused 0 (delta 0), pack-reused 608
Receiving objects: 100% (621/621), 272.98 KiB | 718.00 KiB/s, done.
Resolving deltas: 100% (358/358), done.

Da sich die ursprüngliche Quelle im selben Ordner befand, wird diese Quelle durch Erstellen eines Ordners mit dem Namen "gid-joeclinton" gespeichert. Geben Sie daher zum Zeitpunkt der Ausführung diese Quelle an und führen Sie sie aus

(base) PS C:\Users\*\Downloads\img> python .\gid-joeclinton\google_images_download\google_images_download.py
 -k cat

Item no.: 1 --> Item name = cat
Evaluating...
Starting Download...
Completed Image ====> 1.Layer-1704-1920x840.jpg
Invalid or missing image format. Skipping...
Completed Image ====> 2.An_up-close_picture_of_a_curious_male_domestic_shorthair_tabby_cat.jpg
Completed Image ====> 3.Thinking-of-getting-a-cat.png
Completed Image ====> 4.cat-10-e1573844975155.jpg
 (Weggelassen)
Completed Image ====> 72.15276403_web1_190123-VNE-CatLeash.jpg
Completed Image ====> 73.CatsHaveFacialExpressionsButHardToRead_600.jpg
Completed Image ====> 74.Banner3.jpg


Unfortunately all 100 could not be downloaded because some images were not downloadable. 74 is all we got for this searc
h filter!

Errors: 26

Everything downloaded!
Total errors: 26
Total time taken: 120.21685576438904 Seconds

Wenn Sie daran gewöhnt sind, werden Sie sofort daran denken, aber ich hatte nicht viel Erfahrung damit, den Patch direkt herunterzuladen und zu verwenden. Daher konnte ich nicht sofort daran denken, also schrieb ich ihn als Memo für mich auf. Ich hoffe, es wird jedem helfen.

Nachtrag

Dieser Patch wird in der PR-Ausgabe erwähnt, aber es scheint, dass selbst mit der Option "-l" nicht mehr als 100 Elemente erhalten werden können. https://github.com/hardikvasa/google-images-download/pull/298 Wenn Sie eine Zahl kleiner als 100 angeben, funktioniert dies einwandfrei. Wenn Sie jedoch eine Zahl größer als 100 angeben, tritt ein Fehler auf, der nicht funktioniert.

Recommended Posts

Der Download von Google-Bildern hat nicht funktioniert, daher Unterstützung
Laden Sie die Top-n-Google-Bildsuche herunter