Ein einfacher HTTP-Client, der nach dem Üben von Python erstellt wurde
Python 3.4.3
Wenn der Befehl python3 lautet, lesen Sie ihn bitte entsprechend.
$python http1.0.py 'IP Adresse' 'Dateiname zum Speichern des zurückgegebenen HTML'
Da es mühsam war, das Überspringen des Headers zu schreiben, suchte ich alle Teile mit zwei aufeinander folgenden Zeilenumbrüchen von vorne ab und schnitt sie mit Scheiben ab. Die Ausnahme ist der Stil, vorerst alles zu fangen.
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