Как загрузить изображение из Google без потери информации и как прочитать его, используя модуль подушки, используя Python - PullRequest
0 голосов
/ 06 января 2020

У меня возникла проблема при загрузке изображения со страницы поиска Google и сохранении этого изображения на диске. Я также сталкиваюсь с проблемой при чтении того же изображения.

Проблема 1: (Загрузка образа и сохранение на диск) Я использовал модуль «Запросы» для загрузки изображения. как только изображение загружено, и если я пытаюсь открыть его, оно показывает ошибку ниже вместо фактического содержимого изображения (перепробовал все форматы изображения, такие как jpg, png, et c ....) "Похоже, что мы не делаем поддержать этот формат файла "

Примечание. Я также использовал модуль urllib.requests для загрузки изображения, в этом случае я также столкнулся с той же проблемой.

Ниже приведен код:

image_url = "https://www.google.com/imgres?imgurl=https%3A%2F%2Fi.etsystatic.com%2F16576605%2Fr%2Fil%2Fab973a%2F1811762786%2Fil_570xN.1811762786_ni8d.jpg&imgrefurl=https%3A%2F%2Fwww.etsy.com%2Flisting%2F676777770%2F8-styles-wood-acrylic-leather-endless&docid=Knls-viNHmqhZM&tbnid=WF4mlYC28VcOKM%3A&vet=10ahUKEwiB8v3NnezmAhWmzjgGHaWDCtIQMwgrKAAwAA..i&w=570&h=571&itg=1&bih=710&biw=1536&q=676777770&ved=0ahUKEwiB8v3NnezmAhWmzjgGHaWDCtIQMwgrKAAwAA&iact=mrc&uact=8"

with open(temp_file_path, "wb") as fil:
    response = requests.get(image_url, stream=True)
    response.raw.decode_content = True
    shutil.copyfileobj(response.raw, fil)
fil.close()

Issue2: (Откройте загруженный образ с помощью модуля PIL) Следующий шаг - прочитать загруженный образ, и я использовал для этого модуль «PIL» (подушку). Но я столкнулся с проблемой ниже. «PIL.UnidentifiedImageError: невозможно идентифицировать файл изображения <_io.BufferedReader name = '<strong> path \ 1.jpg'>"

Примечание. Если я использовал загруженные вручную изображения или захваченные изображения, я могу чтобы прочитать их правильно.

Ниже приведен код, который я использовал:

from PIL import Image
img = Image.open(open(temp_file_path, "rb"))

Я думаю, что это из-за проблемы преобразования байтов и строк, но я не могу понять это

Я прилагаю изображение, которое было загружено скриптом, используя модуль запросов для справки.

Было бы здорово, если бы кто-то помог мне ....

1 Ответ

0 голосов
/ 12 апреля 2020

Проблема, которую я вижу, заключается в том, что этот URL не go напрямую к изображению. Я попробовал ваш код с image_url="https://i.etsystatic.com/16576605/r/il/ab973a/1811762786/il_794xN.1811762786_ni8d.jpg" и все заработало отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...