1

Steam API によって提供される URL から Steam プロフィール画像をダウンロードするスクリプトを作成しています。使用する方法に関係なく、破損した結果が得られます。

破損した元の画像の例

元画像へのSteamのリンク

「リクエスト」ライブラリの使用:

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

としても:

avatar = requests.get(avatarURL)
with open(avatarName, 'wb') as f:
    f.write(avatar.content)

そして、「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

これは破損の問題であるため、ファイル オブジェクトを開くときにバイナリ フラグを設定する/設定しないことに関係があるのではないかと考えていました。 まだ試していない別の方法は、OS コマンドをインポートし、wget を使用してファイルをダウンロードし、そこから作業することです。 wget も破損した結果を返します。

興味深いことに、どの方法を使用しても、毎回まったく同じ方法で画像が破損するようです。

私はまだ urllib2 を使用していません (こちら)。これは、私が確認した Q&A のほとんどが urllib を使用しているためです。

4

1 に答える 1

1

@ton1c がすべてうまくいったと言ってから、別のシステムから wget を実行してみましたが、問題なく動作しました。Filezillaを使用してサーバーとの間でファイルを転送しているため、実際にサーバー上にある画像をブラウザでナビゲートして確認し、すべて正常にレンダリングされました。どうやら Filezilla を使用してコンピューターにダウンロードすると、破損が発生したようです。それは別の問題ですが、私が自分で把握する小さな問題です。

于 2013-10-05T21:44:16.013 に答える