Un simple client HTTP créé après avoir pratiqué Python
Python 3.4.3
Si la commande est python3, veuillez la lire comme il convient.
$python http1.0.py 'adresse IP' 'Nom de fichier pour enregistrer le HTML renvoyé'
Comme il était difficile d'écrire le saut de l'en-tête, j'ai recherché toutes les parties avec deux sauts de ligne consécutifs de l'avant et les ai coupées avec des tranches. L'exception est le style de tout attraper pour le moment.
http1.0.py
import socket
import sys
import traceback
def main():
    #Set max buffer size
    max_size = 8192
    argv = sys.argv
    argc = len(argv)
    #Check commandline parameter
    if(argc != 3):
        sys.stderr.write('Usage: python http1.0.py [ADDRESS] [FILE]\nor\n')
        sys.stderr.write('Usage: python3 http1.0.py [ADDRESS] [FILE]\n')
        exit()
    address = (argv[1], 80)
    filename = argv[2]
    try:
        client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    #Create socket
        client.connect(address)    #Connect
        client.sendall(b'GET / HTTP/1.0\r\n\r\n')    #Send GET command
        data = client.recv(max_size).decode('utf-8')    #Receive data and decode
        client.close()  #Close
        #Cut header
        index = data.find('\r\n\r\n')
        data = data[index:]
        #Write HTML file
        fout = open(filename, 'w')
        fout.write(data)
        fout.close()
    except:
        sys.stderr.write(traceback.format_exc())
        exit()
if __name__ == '__main__':
	main()
Recommended Posts