3

私はpycurlに苦労しています。これらは私のヘッダーです:

headers.append('User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0')
headers.append('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
headers.append('Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3')
headers.append('Accept-Encoding: gzip, deflate')
headers.append('Accept-Charset: UTF-8,*')
headers.append('Connection: Keep-Alive')

オリジナル:http://dl.dropbox.com/u/25733986/test.jpg

私が得るもの:http://dl.dropbox.com/u/25733986/test_kaputt.jpg

ご覧のとおり、pycurl で取得したものは壊れています。それらをテキスト比較ツールで比較すると、それらが同じであることがわかります。(元の行末には LF のみがあり、破損した行末には CRLF があったという違いがありましたが、それを変更したところ、同じ画像になりましたが、まだ壊れています)

ダウンロード元のホストが理由ではありません。ドロップボックスとローカルのApacheから同じことをしようとしました。どちらも機能しませんでした。

これは私が画像を保存する方法です:

self.buffer = StringIO.StringIO()
# other curl options like ssl, cookies, followlocation and GET Request URL Setup to the Image: http://dl.dropbox.com/u/25733986/test.jpg
self.curl.setopt(pycurl.WRITEFUNCTION, self.buffer.write)
# -> curl.perform()
f = open("temp/resources/%s" % (filename,), 'w')
f.write(self.buffer.getvalue())
f.close()

誰かがこれについて何か提案をしてくれたら嬉しいので、自分のエラーを見つけることができます.

4

1 に答える 1

5

さて、この質問を投稿して最終的にこれについて瞑想したところ、解決策が得られました。

ファイルをバイナリモードで開く必要がありました。

f = open("temp/resources/%s" % (filename,), 'wb')

とにかく、この質問が他の誰かに役立つことを願っています。

これについて瞑想させてくれたstackoverflowに感謝します。:)

于 2011-06-09T12:04:25.653 に答える