【发布时间】:2018-09-02 08:18:41
【问题描述】:
我正在做一个 python 项目,我需要从一个 URL 下载一个图像,我用谷歌搜索了很多,尝试了很多解决方案,但对我不起作用。
已更新:现在我已将代码更新为:
from PIL import Image
from flask import Flask
import requests
app = Flask(__name__)
@app.route('/<path:image_url>')
def grab_image(image_url):
url = str(image_url)
r = requests.get(url, allow_redirects=True)
print('Url is as: {}'.format(url))
filename = url.split('/')[-1]
open(filename, 'wb').write(r.content)
img = Image.open(filename)
img.show()
return img
if __name__ == '__main__':
app.run()
现在,它会下载图像并显示它,但不会将图像保存在 我的目录,这里有什么问题?
以下是以前/旧代码。
这是我尝试过的:
from flask import Flask
import urllib.request
app = Flask(__name__)
def download_img(image_url, file_path, file_name):
full_path = file_path + file_name + '.jpg'
urllib.request.urlretrieve(image_url, full_path)
pass
@app.route('/<path:image_url>')
def hello_world(image_url):
file_name = 'async'
download_img(image_url, 'img/', file_name)
return 'Hello World!'
if __name__ == '__main__':
app.run()
这是我的要求:
http://127.0.0.1:5000/https://www.thelaurelmagazine.com/sites/default/files/styles/hero_image/public/mary_abryani_highlands_nc_yoga.jpg
但它返回此错误:
urllib.error.HTTPError: HTTP Error 403: Forbidden
127.0.0.1 - - [02/Sep/2018 13:13:57] "GET /https://www.thelaurelmagazine.com/sites/default/files/styles/hero_image/public/mary_abryani_highlands_nc_yoga.jpg HTTP/1.1" 500 -
我也尝试过使用
http而不是https,但它返回相同的错误。
请帮帮我!
提前致谢!
【问题讨论】:
-
您似乎输入错误。查看请求的开头 :) 你有 https twise
-
嗨@HermanWilén,第二个
HTTP或https是作为URL 参数传递的,所以这不是错字。
标签: python python-3.x urllib