Un client HTTP simple implémenté en Python

Aperçu

Un simple client HTTP créé après avoir pratiqué Python

environnement

Python 3.4.3

Comment utiliser

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é'

Supplément

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.

Code source

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

Un client HTTP simple implémenté en Python
Client IRC simple avec python
Implémentation d'un algorithme simple en Python 2
Exécutez un algorithme simple en Python
Essayez de dessiner une animation simple en Python
Créer une application GUI simple en Python
Ecrire une méthode de cupidité simple en Python
Ecrire un plugin Vim simple en Python 3
GRPC simple en Python
Requête HTTP en Python
Implémentation de SimRank en Python
Implémentation de Shiritori en Python
Configurer un serveur HTTPS simple avec Python 3
Notes de programme simples Pub / Sub en Python
Créer un modèle d'investissement dynamique simple en Python
Configurer un serveur SMTP simple en Python
Prendre une capture d'écran en Python
Créer une fonction en Python
Créer un dictionnaire en Python
Ecrire un programme de dynamique moléculaire super simple en python
Utiliser le cache HTTP en Python
Créez un Slackbot simple avec un bouton interactif en python
Créer un bookmarklet en Python
Implémentation de Supreme Solver dans Python 3
Analyse de régression simple avec Python
Serveur HTTP simple pour python
Dessinez un cœur en Python
J'ai implémenté une commande de remplacement de type Vim dans Slackbot #Python
J'ai fait un jeu de frappe simple avec tkinter de Python
Comment spécifier un serveur HTTP simple Python de répertoire public
Un moyen simple d'éviter plusieurs boucles for en Python
[MQTT / Python] Implémentation d'une classe qui fait Pub / Sub de MQTT en Python
Probablement dans un serpent Nishiki (Titre original: Peut-être en Python)
Ecrire une dichotomie en Python
[python] Gérer les fonctions dans une liste
Première analyse de régression simple en Python
Appuyez sur une commande en Python (Windows)
Implémentation de la segmentation d'image en python (Union-Find)
OAuth 2 simple avec Python (urllib + oauthlib)
Créer un conteneur DI avec Python
Ecrire un serveur HTTP / 2 en Python
Dessinez une matrice de diagramme de dispersion avec python
ABC166 en Python A ~ C problème
Ecrire des algorithmes A * (A-star) en Python
Règles d'apprentissage Widrow-Hoff implémentées en Python
Créer un fichier binaire en Python
Implémentation de la méthode de propagation d'étiquettes en Python
Résoudre ABC036 A ~ C avec Python
Ecrire un graphique à secteurs en Python
Ecrire le plugin vim en Python
Écrire une recherche de priorité en profondeur en Python
Implémentation des règles d'apprentissage Perceptron en Python
Résoudre ABC037 A ~ C avec Python
Dessinez un diagramme CNN en Python
Créer une chaîne aléatoire en Python
Logique gacha simple écrite en Python
Implémenté en 1 minute! LINE Notify en Python