Der Download von Google-Bildern ist sehr praktisch, um Lernbilder für die Bilderkennung mit Tensorflow usw. zu sammeln.
Der Google Pip-Download, der mit pip abgerufen werden kann, kann zu diesem Zeitpunkt (2020/06) keine normalen Bilder erfassen. Daher habe ich die modifizierte Version des Google Image-Downloads erhalten. Als ich jedoch die erhaltene Python-Datei ausführte, erhielt ich einen UnicodeDecodeError, sodass ich ein Memorandum über den Umgang damit hinterlassen werde.
Übrigens werde ich diesen Inhalt nicht ansprechen, aber ein separater Chrome-Treiber ist erforderlich, um 101 oder mehr Bilder mit Google Imade Download zu sammeln.
macOS Catalina 10.15.3 Python 3.5.3 pip 20.1.1
Sie können Google Image Download mit Pip installieren.
pip install google_images_download
Selbst wenn es zu diesem Zeitpunkt (2020/06) ausgeführt wird, kann die Bildersammlung nicht normal durchgeführt werden.
~ $ ./google_images_download/google_images_download.py --keywords "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: 1.4127511978149414 Seconds
Eine modifizierte Version des Downloads von Google-Bildern ist unten verfügbar. Holen Sie sie sich also mit dem Git-Klon. https://github.com/Joeclinton1/google-images-download/tree/patch-1
Als ich die erhaltene Python-Datei ausführte, wurde der folgende Fehler angezeigt.
~ $ python ./gid-joeclinton/google_images_download/google_images_download.py -k cat
Item no.: 1 --> Item name = cat
Evaluating...
Starting Download...
Traceback (most recent call last):
File "./gid-joeclinton/google_images_download/google_images_download.py", line 1019, in <module>
main()
File "./gid-joeclinton/google_images_download/google_images_download.py", line 1008, in main
paths,errors = response.download(arguments) #wrapping response in a variable just for consistency
File "./gid-joeclinton/google_images_download/google_images_download.py", line 844, in download
paths, errors = self.download_executor(arguments)
File "./gid-joeclinton/google_images_download/google_images_download.py", line 962, in download_executor
items,errorCount,abs_path = self._get_all_items(raw_html,main_directory,dir_name,limit,arguments) #get all image items and download images
File "./gid-joeclinton/google_images_download/google_images_download.py", line 765, in _get_all_items
image_objects = self._get_image_objects(page)
File "./gid-joeclinton/google_images_download/google_images_download.py", line 754, in _get_image_objects
object_decode = bytes(object_raw, "utf-8").decode("unicode_escape")
UnicodeDecodeError: 'unicodeescape' codec can't decode byte 0x5c in position 123085: \ at end of string
Google_images_download.py behoben. "Ignorieren" zum Fehlerargument von bytes.decode () hinzugefügt.
# Getting all links with the help of '_images_get_next_image'
def _get_image_objects(self,s):
start_line = s.find("AF_initDataCallback({key: \\'ds:1\\'") - 10
start_object = s.find('[', start_line + 1)
end_object = s.find('</script>', start_object + 1) - 4
object_raw = str(s[start_object:end_object])
object_decode = bytes(object_raw, "utf-8").decode("unicode_escape","ignore")
image_objects = json.loads(object_decode)[31][0][12][2]
image_objects = [x for x in image_objects if x[0]==1]
return image_objects
Es gibt einige Bilder, die aufgrund von URLError usw. nicht erfasst werden können, aber jetzt können Sie Bilder normal erfassen.
$ python ./gid-joeclinton/google_images_download/google_images_download.py -k cat
Item no.: 1 --> Item name = cat
Evaluating...
Starting Download...
Completed Image ====> 1.XXXX.png
Completed Image ====> 2.XXXX.jpg
~ Abkürzung ~
Unfortunately all 100 could not be downloaded because some images were not downloadable. 65 is all we got for this search filter!
Errors: 35
Everything downloaded!
Total errors: 35
Total time taken: 173.5407509803772 Seconds
Ich habe den aufgetretenen Fehler einfach ignoriert, aber da ich das angestrebte Bild sammeln konnte, habe ich aufgehört, die Ursache zu verfolgen. Wenn ich Zeit habe, möchte ich die Ursache untersuchen und geeignete Maßnahmen ergreifen.
Recommended Posts