爬虫1 socket方式下载一张图片
import socket import re client = socket.socket() # 图片url img_url = 'https://img03.sogoucdn.com/app/a/100520093/10e8b9550acde0b8-459f14f6a089053d-e879bbcb128a7b240716f9531571fc2c.jpg' # 构造报文 data = 'GET /app/a/100520093/10e8b9550acde0b8-459f14f6a089053d-e879bbcb128a7b240716f9531571fc2c.jpg HTTP/1.1\r\nHost: img03.sogoucdn.com\r\n\r\n' # 连接服务端 client.connect(('img03.sogoucdn.com',80)) # 发送请求 client.send(data.encode()) # 接收响应 # 接收第一次数据 first_data = client.recv(1024) # 获取响应数据的长度 # print(first_data) length = int(re.findall(b'Content-Length: (.*?)\r\n',first_data)[0]) # print(length) # 获取图片数据 img_data = b'' # 获取第一次数据的图片信息 img_data += re.findall(b'\r\n\r\n(.*?)',first_data,re.S)[0] # print(img_data) while True: data = client.recv(1024) if data: img_data += data if(len(img_data) >= length): break # else: # break # print('哈哈',len(img_data),length) print(img_data) with open('myimg1.jpg','wb') as f: f.write(img_data)