用python下载图像
Posted
技术标签:
【中文标题】用python下载图像【英文标题】:download an image with python 【发布时间】:2021-10-23 07:59:25 【问题描述】:你好我想下载这个link的图片, 但我无法打开创建的图像。这是输出文件 我该如何解决这个问题? 这是代码:
from requests.models import Response
import requests
url = 'https://beta.mangaeden.com/it/it-manga/jojo-no-kimyou-na-bouken---jojorion/1/1'
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
immagine = soup.find(id='mainImg')
src = str(immagine.get('src'))
link_immagine = "https:"+src
print(link_immagine)
'''download imagege'''
response = requests.get(link_immagine)
f = open("C:\\Users\\chris\\Desktop\\image.jpg", "wb")
f.write(response.content)
f.close()
print('download successfull')
【问题讨论】:
请看这个:***.com/a/8286449/11754210 这能回答你的问题吗? How to download image using requests 这不是下载图片的问题,而是图片访问的问题。发出请求时有 403 响应。 【参考方案1】:根据您的用户代理,该网站似乎返回 403 Forbidden
错误。如果您使用浏览器的用户代理请求图像,它应该可以工作,例如:
response = requests.get(link_immagine, headers=
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0 Safari/537.36'
)
【讨论】:
【参考方案2】:下载此图像时的问题实际上是获取请求,因为响应返回图像链接是403
,但如果您在标题中设置User-Agent
,它会解决问题,然后您会得到200
你可以保存图像。
from requests.models import Response
import requests
from bs4 import BeautifulSoup
url = 'https://beta.mangaeden.com/it/it-manga/jojo-no-kimyou-na-bouken---jojorion/1/1'
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
immagine = soup.find(id='mainImg')
src = str(immagine.get('src'))
link_image = "https:"+src
print(link_image)
'''download link_image'''
headers = 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15'
response = requests.get(link_image,headers=headers)
if response.status_code == 200:
with open("download.jpg", 'wb') as f:
f.write(response.content)
else:
print("NOT FOUND")
您之前保存的图像只是 403 Forbidden 的响应,并不是实际的图像数据。
【讨论】:
以上是关于用python下载图像的主要内容,如果未能解决你的问题,请参考以下文章