не удается загрузить изображение с помощью "urllib.request.urlretrieve" в Python - PullRequest
0 голосов
/ 09 октября 2018

Если возможно, укажите также решение

Мой код:

import random
import urllib.request

def download_web_image(url):
    name = random.randrange(1,1000)
    fullname = str(name) + ".jpg"
    urllib.request.urlretrieve(url, fullname)

download_web_image("https://upload.wikimedia.org/wikipedia/commons/b/b4/JPEG_example_JPG_RIP_100.jpg")

Ошибка:

Traceback (последний вызов был последним): Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py ", строка 1318, в файле do_open encode_chunked = req.has_header ('Transfer-encoding'))" / Library / Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py ", строка 1239, в запросе self._send_request (метод, URL, тело, заголовки, encode_chunked) Файл" / Library / Frameworks / Python.Framework / Versions / 3.6 / lib / python3.6 / http / client.py ", строка 1285, в файле _send_request self.endheaders (body, encode_chunked = encode_chunked)" /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py ", строка 1234, в конечных заголовках self._send_output (message_body, encode_chunked = encode_chunked) Файл" /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py ", строка 1026, в файле _send_output self.send (msg)" /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py ", строка 964, в отправке файла self.connect ()" /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py ", строка 1400, в файле connect имя_сервера = имя_сервера) Файл" /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py ", строка 407, в wrap_socket _context = self,_session = session) Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", строка 814, в init self.do_handshake () File "/ Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py ", строка 1068, в файле do_handshake self._sslobj.do_handshake ()" /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py ", строка 689, в do_handshake self._sslobj.do_handshake () ssl.SSLError: Сертификат [SSL: CERTIFICATE_VERIFY_FAILED] не пройден (_ssl.c: 777)

Во время обработкивышеуказанное исключение, другое исключение произошло:

Трассировка (последний вызов был последним): Файл "/ Users / macintosh / PycharmProjects / Claculatorer / Bucky.py ", строка 9, в файле download_web_image (" https://upload.wikimedia.org/wikipedia/commons/b/b4/JPEG_example_JPG_RIP_100.jpg") Файл "/Users/macintosh/PycharmProjects/Claculatorer/Bucky.py", строка 7, в файле download_web_image urllib.request.urlretrieve (, полное имя) Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", строка 248, в urlretrieve с contextlib.closing (urlopen (url, data)) как fp: Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py", строка 223, в urlopen, возвращает файл opener.open (url, data, timeout) File "/ Library /Frameworks / Python.framework / Versions / 3.6 / lib / python3.6 / urllib / request.py ", строка 526, в открытом ответном файле = файл self._open (req, data)" /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py ", строка 544, в _open '_open', req) Файл" /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py ", строка 504, в файле _call_chain result = func (* args)" /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py ", строка 1361, в контексте https_open = self._context, check_hostname = self._check_hostname) Файл" /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py ", строка 1320, в do_open повысить URLError (err) urllib.error.URLError:

Процесс завершен с кодом выхода 1

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

вам просто нужно использовать команду:

 /Applications/Python\ 3.6/Install\ Certificates.command
0 голосов
/ 09 октября 2018

Попробуйте, это работает для меня:

import random
import urllib.request

def download_web_image(url):
    name = random.randrange(1,1000)
    fullname = str(name) + ".jpg"
    urllib.request.urlretrieve(url, fullname)

print(download_web_image("https://upload.wikimedia.org/wikipedia/commons/b/b4/JPEG_example_JPG_RIP_100.jpg"))

Это выводит: None но это нормально!

Файл сохраняется в том же каталоге, что и скрипт.

enter image description here

Вот как я запустил скрипт: enter image description here

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