爬虫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)

 

posted @ 2019-01-08 19:12  山…隹  阅读(168)  评论(0编辑  收藏  举报