urlretrieve 的问题无法从 url 获取包含 unicode 字符串的图像
problem of urlretrieve cannot get image from url contains unicode string
我编写了一个 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)
从图片上我觉得有问题url
'https://uploads0.wikiart.org/images/albrecht-durer/watermill-at-the-monta\u0441a.jpg',
如何解决这个问题?
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://".
中的冒号(“:”)
我编写了一个 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)
从图片上我觉得有问题url
'https://uploads0.wikiart.org/images/albrecht-durer/watermill-at-the-monta\u0441a.jpg',
如何解决这个问题?
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://".