[PYTHON] le téléchargement d'images google n'a pas fonctionné, donc l'assistance

supposition

L'exemple de commande a été exécuté dans l'environnement Windows + Anaconda. De plus, certains chemins tels que les noms de compte sont vides, veuillez donc les lire en fonction de votre environnement.

Conclusion

Tout d'abord, je voudrais vous dire à partir de la conclusion que la cause est que le grattage de l'outil officiel ne fonctionne pas correctement en raison du changement de spécification de la recherche d'images Google. Quelqu'un a publié un PR pour le correctif sur le GigHub officiel, donc si vous téléchargez la source et que vous l'exécutez, vous pouvez le faire fonctionner correctement.

Le téléchargement d'images Google ne fonctionne pas!

Je veux faire de la reconnaissance d'image à l'aide de Tensorflow etc. et essayer de collecter des images pour l'apprentissage https://qiita.com/too-ai/items/4fad0239b8b3c465fe6d https://qiita.com/Ikko_Kojima/items/4d943c60ff5e886a0544 J'ai essayé de collecter des images à l'aide de Google Image Download en me référant à la page ici.

(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

De cette façon, aucune erreur ne s'est produite et le résultat a été que le répertoire a été créé (téléchargements \ KEYWORD sous l'environnement d'exécution), mais aucun fichier n'a été enregistré sous celui-ci.

Je ne savais pas quelle en était la cause, mais je me demandais si je devais jeter un coup d'œil à l'intérieur.

pip install google_images_download

ne pas

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

J'ai couru chercher la source et j'ai jeté un coup d'œil au contenu.

Je suis nouveau dans Python, mais heureusement, ce logiciel ne comprenait en fait qu'un seul fichier exécutable, donc lorsque j'ai commencé à lire la source en fonction des mots-clés affichés à l'écran, le problème était J'ai pu l'identifier immédiatement.

# Lignes 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])

Cependant, rg_meta notranslate et {, qui sont définis comme mots-clés dans cette zone, ne se trouvent pas dans les résultats de recherche actuels et les données d'image ne peuvent pas être acquises normalement.

Au début, je pensais que je pourrais faire quelque chose si j'ajustais les mots-clés ici par moi-même, mais je ne savais pas dans quel état ils avaient été découpés et je les ai remis au traitement ultérieur, donc c'était difficile, j'ai donc vérifié à nouveau le site officiel. , Quelqu'un lançait une pull request pour un patch.

pièce

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

À partir de Clone ou Download sur cette page, obtenez l'URL et git clone ou téléchargez le ZIP, obtenez la source et exécutez-la en utilisant cette source. Je l'ai eu avec git clone.

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.

Puisque la source originale se trouvait dans le même dossier, cette source est enregistrée en créant un dossier appelé gid-joeclinton. Par conséquent, au moment de l'exécution, spécifiez cette source et exécutez

(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
 (Omis)
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

Si vous y êtes habitué, vous y penserez tout de suite, mais je n'avais pas beaucoup d'expérience dans le téléchargement du patch directement et son utilisation, donc je ne pouvais pas y penser tout de suite, alors je l'ai écrit comme mon propre mémo. J'espère que cela sera utile à n'importe qui.

Postscript

Ce correctif est mentionné dans le numéro PR, mais il semble que plus de 100 éléments ne puissent pas être obtenus même avec l'option -l. https://github.com/hardikvasa/google-images-download/pull/298 Si vous spécifiez un nombre inférieur à 100, cela fonctionnera correctement, mais si vous spécifiez un nombre supérieur à 100, une erreur se produira et cela ne fonctionnera pas.

Recommended Posts

le téléchargement d'images google n'a pas fonctionné, donc l'assistance
Téléchargez les n principales recherches d'images Google