zoukankan      html  css  js  c++  java
  • 爬虫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
    Host: img03.sogoucdn.com
    
    '
    # 连接服务端
    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: (.*?)
    ',first_data)[0])
    # print(length)
    # 获取图片数据
    img_data = b''
    # 获取第一次数据的图片信息
    img_data += re.findall(b'
    
    (.*?)',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)
  • 相关阅读:
    Day01-基础加强笔记
    CS Academy Round#2 E.Matrix Coloring
    AtCoder ABC198 F
    NERC2021 B. Button Lock
    AtCoder ARC115 E
    NOI Online 2021 Round 1 提高组 愤怒的小 N
    洛谷 P6918 [ICPC2016 WF]Branch Assignment
    AtCoder ARC076 F
    Atcoder ABC155 F
    POJ 1966 Cable TV Network
  • 原文地址:https://www.cnblogs.com/cxhzy/p/10240903.html
Copyright © 2011-2022 走看看