在没有403的情况下制造类似的行为?(Python Wget)

2024-10-02 22:33:52 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一些代码可以下载一个图像,覆盖它并显示结果。然而,我得到一个403(可能从用户代理)时,试图从一个特定的网站下载。我怎样才能创建类似的代码来做同样的事情呢?你知道吗

from PIL import Image
import os, sys
import wget
import requests


url = "https://cdn.discordapp.com/avatars/247096918923149313/34a66572b9339acdaa1dedbcb63bc90a.png?size=256"
filename = wget.download(url)

pp = Image.open(filename)
pp.save("image2c.png")
pp = Image.open("image2c.png").convert("LA")
pp.save("image2c.png")

background = Image.open("image1.png").convert("RGBA")
foreground = Image.open("image2c.png").convert("RGBA")
foreground = foreground.resize((256, 256), Image.BILINEAR)

background.paste(foreground, (125, 325), foreground)
background.show()
os.remove(filename)

Tags: 代码imageimporturlconvertpngossave
1条回答
网友
1楼 · 发布于 2024-10-02 22:33:52

似乎wget python库在https或参数方面有一些问题。。。您可以使用请求(您已经导入了它)。你知道吗

from PIL import Image
import os, sys
import requests
from StringIO import StringIO

url = "https://cdn.discordapp.com/avatars/247096918923149313/34a66572b9339acdaa1dedbcb63bc90a.png?size=256"
response = requests.get(url)
pp = Image.open(StringIO(response.content))
pp.save("image1.png")

pp = Image.open("image2c.png").convert("LA")
pp.save("image2c.png")

background = Image.open("image1.png").convert("RGBA")
foreground = Image.open("image2c.png").convert("RGBA")
foreground = foreground.resize((256, 256), Image.BILINEAR)
background.paste(foreground, (125, 325), foreground)
background.show()

见:How do I read image data from a URL in Python?

对于Python3:

from PIL import Image
import os, sys
import requests
from io import BytesIO

url = "https://cdn.discordapp.com/avatars/247096918923149313/34a66572b9339acdaa1dedbcb63bc90a.png?size=256"
response = requests.get(url)
pp = Image.open(BytesIO(response.content))
pp.save("image1.png")

见:https://stackoverflow.com/a/31067445/8221879

相关问题 更多 >