[英]Extract Image from a URL using Python 3
我正在使用 Flask 处理 REST API,其中我必须从用户在 Url 参数中提供的 URL 中检索图像。
这是我尝试过的:
import urllib
from io import BytesIO
from PIL import Image
from flask import Flask
app = Flask(__name__)
@app.route('/<path:image_url>')
def build_mask_rmv_bg(image_url):
f = urllib.request.urlopen(image_url)
jpeg_str = f.read()
original_im = Image.open(BytesIO(jpeg_str))
return original_im
if __name__ == '__main__':
app.run()
而且,这是我的要求:
http://127.0.0.1:5000/http://raw.githubusercontent.com/tensorflow/models/master/research/deeplab/g3doc/img/image2.jpg
我在 URL Parameter.But 中尝试了 HTTP 和 HTTTPS 路径,但返回以下错误:
urllib.error.URLError: <urlopen error [SSL:CERTIFICATE_VERIFY_FAILED] certificate
verify failed (_ssl.c:749)>
127.0.0.1 - - [01/Sep/2018 09:37:51] "GET /http://raw.githubusercontent.com/tensorflow/models/master/research/deeplab/g3doc/img/image2.jpg HTTP/1.1" 500 -
更新:
我已经使用wget
更新了它,现在它没有返回任何错误,但文件仍然没有下载图像。
这是更新后的代码:
from flask import Flask
import wget
app = Flask(__name__)
@app.route('/<path:image_url>')
def build_mask_rmv_bg(image_url):
url = str(image_url)
# download the file contents in binary format
print(url)
wget.download(url, "img/image1.jpg")
return 'something happened'
if __name__ == '__main__':
app.run()
这里有什么问题?
请帮帮我!
提前致谢!
您可以使用 Python 请求模块从 URL 获取数据,然后像这样以二进制格式保存在文件中
f = open(filename, "wb")
r = requests.get(url)
f.write(r.content)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.