좋은 아침, 지역 사회.python - socket download image
시간이 지나면이 스레드가 시작됩니다. 파이썬 소켓 모듈을 사용하여 www에서 그림을 다운로드하려고합니다. "recv()"로 그림의 원본을 가져 와서 이진 모드로 파일에 쓰고 있습니다. "answer.split ("image/jpeg ")"로 헤더의 내용을 분할해도 문제가 해결되지 않습니다. Heres는
내 코드 : 일반 텍스트
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에서 헤더없이 분할)이 같은 "ÿØÿá5ExifMM * BJ (1r2Ž ‡ i¤Ð ü € 'ü의 €'어도비이다 Photoshop CS5 Windows2012 : 03 : 05 13:37:44 ¤ & (.h 어원 _Adobe_CMÿîAdobed € "ÀÀ ^"ÿÝ ÿÄ? 3! 1AQa "q2'¡ ± B # $ RÁb34r, C % 'S ¤ºcs5 ¢ ²ƒ & D"TdE £ "012"를 참조하십시오.
windows picture show로 파일을 열려고 할 때 파일이 손상되었다는 오류가 발생합니다.
누군가가 나를 도울 수 있기를 바랍니다.
나는 urllib2로 작업했지만, 나는 그것이 더 낮은 레벨에서 어떻게 작동하는지 배우고 싶다. 나는 생각했다 \ r \ n \ r \ n는 paket의 끝을 표시한다. 그것을 시도하려고합니다. - 편집 : IT 작동;) - 변경 "data = recvd.split ("image/jpeg ")"[1] "data = recvd.split ("\ r \ n \ r \ n ") [1]" –