使用Python从URL下载图像,给出损坏的结果

2024-10-17 08:19:55 发布

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

我正在编写一个脚本,从Steam API提供的URL下载Steam配置文件图片。不管我使用什么方法,我都会得到损坏的结果:

Example with corrupted and original images

Steam's link to the original image。在

使用“请求”库:

avatar = open(avatarName, 'wb')
avatar.write(requests.get(avatarURL).content)
avatar.close()

以及:

^{pr2}$

使用“urllib”库:

urllib.urlretrieve(avatarURL, avatarName)

以及:

avatar = urllib.URLopener()
avatar.retrieve(avatarURL, avatarName)

并在链接上直接使用wget(注意,这是在Python外部,仅从终端开始):

wget http://media.steampowered.com/steamcommunity/public/images/avatars/ad/adec76ed86e8ffa892d847c8e619262d30e74e32_full.jpg

因为这是一个损坏问题,我想这可能与我打开file对象时设置/不设置二进制标志有关。 另一种我还没有尝试过的方法是导入操作系统命令并使用wget下载文件,然后从那里开始工作。wget也会给出损坏的结果。在

有趣的是,似乎每种方法都会导致图像每次都以完全相同的方式被破坏。在

我还没有使用urllib2(这里),只是因为我检查过的大多数问答都使用了urllib。在


Tags: theto方法脚本apiurl配置文件link
1条回答
网友
1楼 · 发布于 2024-10-17 08:19:55

在@ton1c说一切都对他有用之后,我试着从另一个系统运行wget,它运行得很好。我使用Filezilla在服务器上传输文件,所以我用浏览器导航到服务器上的图像,所有这些图像都正常呈现。很明显,用Filezilla把它们下载到我的电脑上导致了这次腐败。那是一个不同的问题,不过是个小问题,我自己来解决。在

相关问题 更多 >