我编写了一个python脚本来从url中检索图像:
url = `https://uploads0.wikiart.org/images/albrecht-durer/watermill-at-the-montaсa.jpg`
urllib.request.urlretrieve(url, STYLE_IMAGE_UPLOAD + "wikiart" + "/" + url)
我跑步时收到消息
UnicodeEncodeError: 'ascii' codec can't encode character '\u0441' in position 49: ordinal not in range(128)
我认为图片网址有问题
'https://uploads0.wikiart.org/images/albrecht-durer/watermill-at-the-monta\u0441a.jpg',
如何解决此问题?
答案 0 :(得分:1)
URL包含一个非ASCII字符(一个西里尔字母,看起来像拉丁字母“ c”)。
使用urllib.parse.quote
函数转义此字符:
url = 'https://uploads0.wikiart.org' + urllib.parse.quote('/images/albrecht-durer/watermill-at-the-montaсa.jpg')
urllib.request.urlretrieve(url, '/tmp/watermill.jpg')
请勿将整个URL放入quote
函数中,否则它将转义为“ https://”中的冒号(“:”)。