0

おはようコミュニティです。

何時間ものグーグルの後、私はこのスレッドを開始しています。Pythonソケットモジュールを使用してwwwから画像をダウンロードしようとしています。「recv()」で画像のソースを取得し、バイナリモードでファイルに書き込んでいます。「answer.split("image/jpeg")」でヘッダーから内容を分割しても問題は解決しません。

私のコードは次のとおりです。

import socket

socket.setdefaulttimeout(30)

HOST = 'ict.de'   
PORT = 80         

def makestr(s):#create paket-string from list
    rs = ""
    for x in range(0,len(s)-1):
            rs+=s[x]+"\r\n"
    rs+="\r\n"
    return rs

def sendcap(sdata):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
    s.send(sdata)

    recvd=""
    while True:
        data = s.recv(1024)
        if not data: print " Done "; break
        recvd += data
    data = recvd.split("image/jpeg")[1]
    s.close()

    return data

xy = []  
xy.append("GET /fileadmin/ict/images/Presse/Download-Button_1700x1000.jpg HTTP/1.1")
xy.append("Host: www.ict.de")
xy.append("User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101      Firefox/19.0")
xy.append("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
xy.append("Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3")
xy.append("Accept-Encoding: gzip, deflate")
xy.append("DNT: 1")
xy.append("Connection: keep-alive")
data = sendcap(makestr(xy))
f = open("logo.jpg","wb")
f.write(data)
f.close()

プレーンテキストのデータは次のようなものです (ヘッダーなし、画像/jpeg で分割) . ÿHHÿØÿíAdobe_CMÿîAdobed€ÿÛ„ÿÀ^ "ÿÝ ÿÄ? 3!1AQa"q2'¡±B#$RÁb34r‚ÑC%'Sðáñcs5¢²ƒ&D"TdE£t6ÒUâeò³„"

バイナリデータのように見えます。

Windows ピクチャ ショーでファイルを開こうとすると、ファイルが破損しているというエラーが表示されます。

誰かが私を助けてくれることを願っています。

4

1 に答える 1