Python >> Tutoriel Python >  >> Python

Obtenir une ligne HTTP Python

Vous connaissez peut-être déjà la capacité de Python à créer un serveur Web simple en une seule ligne de code Python. Nouvelles anciennes. De plus, quel est l'intérêt de créer un serveur Web qui ne fonctionne que sur votre machine ? Il serait beaucoup plus intéressant d'apprendre à accéder aux sites Web existants en une seule ligne de code. Étonnamment, personne n'en parle dans la communauté Python One-Liners. Il est temps de le changer !

Ce didacticiel vous montre comment effectuer des requêtes HTTP get et post simples. à un serveur Web existant !

Problème :étant donné l'emplacement de l'URL d'un serveur Web desservant des sites Web via HTTP. Comment accéder à la réponse du serveur Web en une seule ligne de code Python ?

Exemple  :Supposons que vous souhaitiez accomplir ce qui suit :

url = 'https://google.com'
# ... Magic One-Liner Here...
print(result)
# ... Google HTML file:
'''
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="de"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>Google</title>...
'''

Vous pouvez l'essayer vous-même dans notre shell Python interactif :

Exercice  :Ce script télécharge-t-il le code source complet du site Web Google.com ?

Découvrons les trois méthodes les plus importantes pour accéder à un site Web en une seule ligne de code Python et comment elles fonctionnent !

Méthode 1 : requests.get(url)

La solution en une seule ligne la plus simple est la suivante :

import requests; print(requests.get(url = 'https://google.com').text)

Voici comment fonctionne ce one-liner :

  • Importer la bibliothèque Python requests qui gère les détails de la demande des sites Web à partir du serveur dans un format facile à traiter.
  • Utilisez le requests.get(...) méthode pour accéder au site Web et passer l'URL 'https://google.com' comme argument pour que la fonction sache à quel emplacement accéder.
  • Accéder au corps réel du get request (la valeur de retour est un objet de requête qui contient également des méta-informations utiles comme le type de fichier, etc.).
  • Afficher le résultat dans le shell.

Notez que le point-virgule est utilisé pour unifier cette méthode. Ceci est utile si vous souhaitez exécuter cette commande depuis votre système d'exploitation avec la commande suivante :

python -r "import requests; print(requests.get(url = 'https://google.com').text)"

Le résultat est le site Web Google souhaité :

'''
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="de"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type"><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><title>Google</title>...
'''

Notez que vous devrez peut-être installer la bibliothèque de requêtes avec la commande suivante dans le terminal de votre système d'exploitation :

pip install requests

Une approche similaire peut être adoptée si vous souhaitez émettre une demande de publication :

Méthode 2 :demandes.post(url)

Que faire si vous souhaitez publier des données sur une ressource Web ? Utilisez la méthode post du requests module! Voici un exemple minimal d'une ligne du request.post() méthode :

import requests as r; print(r.post('https://example.com', {'key': 'val'}).text)

L'approche est similaire à la première :

  • Importer le requests module.
  • Appelez le r.post(...) méthode.
  • Passez l'URL 'https://example.com' comme premier paramètre dans la fonction.
  • Transmettez la valeur à publier à l'URL :dans notre cas, une simple paire clé-valeur dans une structure de données de dictionnaire.
  • Accéder au corps via le text attribut du request objet.
  • Imprimez-le sur le shell.

Méthode 3 :urllib.request

Une méthode recommandée pour récupérer des ressources Web à partir d'un site Web est le urllib.request() fonction. Cela fonctionne également pour créer un simple one-liner pour accéder au site Web de Google en Python 3 comme avant :

import urllib.request as r; print(r.urlopen('https://google.com').read())

Il fonctionne de la même manière qu'auparavant en renvoyant un objet Request auquel on peut accéder pour lire la réponse du serveur. Nous regroupons tout sur une seule ligne afin que vous puissiez l'exécuter depuis le terminal de votre système d'exploitation :

python -r "import urllib.request as r; print(r.urlopen('https://google.com').read())"

Félicitations! Vous maîtrisez maintenant l'art d'accéder à des sites Web en une seule ligne de code Python. Si vous souhaitez augmenter votre puissance de ligne, jetez un œil à mon nouveau livre :

Livre Python One-Liners :maîtrisez d'abord la ligne unique !

Les programmeurs Python amélioreront leurs compétences en informatique avec ces lignes utiles.

Python One-Liners vous apprendra à lire et à écrire des « lignes simples » :des déclarations concises de fonctionnalités utiles regroupées dans une seule ligne de code. Vous apprendrez à décompresser et à comprendre systématiquement n'importe quelle ligne de code Python, et à écrire du Python éloquent et puissamment compressé comme un expert.

Les cinq chapitres du livre couvrent (1) les trucs et astuces, (2) les expressions régulières, (3) l'apprentissage automatique, (4) les principaux sujets de science des données et (5) les algorithmes utiles.

Des explications détaillées des one-liners introduisent les concepts clés de l'informatique etdéveloppez vos compétences en matière de codage et d'analyse . Vous découvrirez les fonctionnalités Python avancées telles que la compréhension de liste , tranchage , fonctions lambda , expressions régulières , carte et réduire fonctions et affectations de tranches .

Vous apprendrez également à :

  • Exploiter les structures de données pour résoudre des problèmes réels , comme utiliser l'indexation booléenne pour trouver des villes avec une pollution supérieure à la moyenne
  • Utiliser les bases de NumPy comme tableau , forme , axe , tapez , diffusion , indexation avancée , tranchage , tri , recherche , agrégation , et statistiques
  • Calculer des statistiques de base de tableaux de données multidimensionnels et les algorithmes K-Means pour l'apprentissage non supervisé
  • Créer davantage d'expressions régulières avancées en utilisant le regroupement et groupes nommés , anticipations négatives , caractères échappés , espaces blancs, jeux de caractères (et jeux de caractères négatifs ) et opérateurs gourmands/non gourmands
  • Comprendre un large éventail de sujets informatiques , y compris les anagrammes , palindromes , surensembles , permutations , factorielles , nombres premiers , Fibonacci chiffres, obscurcissement , recherche , et tri algorithmique

À la fin du livre, vous saurez comment écrire Python dans sa forme la plus raffinée , et créez de belles pièces concises d'"art Python" en une seule ligne.

Obtenez vos Python One-Liners sur Amazon !!