Maison  >  Article  >  développement back-end  >  Comment utiliser le module urllib.request pour envoyer des requêtes HTTP en Python 3.x

Comment utiliser le module urllib.request pour envoyer des requêtes HTTP en Python 3.x

王林
王林original
2023-07-30 11:21:281531parcourir

Comment utiliser le module urllib.request pour envoyer des requêtes HTTP en Python 3.x

Dans le processus de développement actuel, nous avons souvent besoin d'envoyer des requêtes HTTP pour interagir avec le serveur. Python fournit le module urllib.request, qui est l'un des modules de la bibliothèque standard Python pour gérer les requêtes URL. Dans cet article, nous allons apprendre comment envoyer des requêtes HTTP à l'aide du module urllib.request.

Présentation du module urllib.request

Le module urllib.request est le module de requête HTTP intégré de Python3, qui fournit une série de méthodes pour envoyer et traiter des requêtes HTTP. Il peut implémenter des méthodes de requête HTTP courantes telles que la requête GET et la requête POST, et prend également en charge la configuration des en-têtes de requête, des données de formulaire, des cookies et d'autres fonctions.

Pour utiliser le module urllib.request, il faut d'abord l'importer :

import urllib.request

Ensuite, on peut utiliser les méthodes du module urllib.request pour envoyer des requêtes HTTP.

Envoyer une requête GET

Pour envoyer une requête GET et obtenir le contenu de la réponse du serveur, nous pouvons utiliser la méthode urlopen() dans le module urllib.request. Un exemple est le suivant :

import urllib.request

# 发送 GET 请求
response = urllib.request.urlopen('http://www.example.com')

# 获取服务器响应的内容
content = response.read()

# 打印服务器响应的内容
print(content)

Dans cet exemple, nous envoyons d'abord une requête GET en utilisant la méthode urlopen(), et l'URL demandée est http://www.example.com. Ensuite, nous avons appelé la méthode Response.read() pour obtenir le contenu de la réponse du serveur. Enfin, utilisez la méthode print() pour imprimer le contenu.

Envoyer une requête POST

Pour envoyer une requête POST et télécharger les données du formulaire, nous pouvons construire un objet urllib.request.Request et utiliser la méthode urlopen() pour envoyer la requête. Un exemple est le suivant :

import urllib.request
import urllib.parse

# 构造表单数据
data = urllib.parse.urlencode({'key1': 'value1', 'key2': 'value2'}).encode()

# 构造请求对象
request = urllib.request.Request('http://www.example.com', data)

# 发送 POST 请求
response = urllib.request.urlopen(request)

# 获取服务器响应的内容
content = response.read()

# 打印服务器响应的内容
print(content)

Dans cet exemple, nous construisons d'abord des données de formulaire en utilisant la méthode urllib.parse.urlencode(). Ensuite, utilisez la méthode encode() pour le convertir en flux d'octets. Ensuite, nous construisons un objet urllib.request.Request et lui transmettons l'URL et les données du formulaire en tant que paramètres. Enfin, utilisez la méthode urlopen() pour envoyer la requête et obtenir le contenu de la réponse du serveur.

Définir les en-têtes de requête

Si vous devez définir des en-têtes de requête, tels que l'agent utilisateur, le référent et d'autres informations, vous pouvez utiliser la méthode add_header() de l'objet urllib.request.Request. Un exemple est le suivant :

import urllib.request

# 构造请求对象
request = urllib.request.Request('http://www.example.com')

# 设置请求头
request.add_header('User-Agent', 'Mozilla/5.0')

# 发送请求
response = urllib.request.urlopen(request)

Dans cet exemple, nous construisons d'abord un objet urllib.request.Request et lui passons l'URL en tant que paramètre. Ensuite, utilisez la méthode add_header() pour définir un en-tête de requête User-Agent. Enfin, la requête est envoyée à l'aide de la méthode urlopen().

Traitement du résultat de la demande

Après l'envoi de la demande, nous pouvons obtenir la réponse du serveur en appelant la méthode de réponse associée. Les méthodes couramment utilisées incluent :

  • response.read() : obtient le contenu de la réponse du serveur et renvoie les données sous forme de flux d'octets.
  • response.getheaders() : récupère les informations d'en-tête de la réponse du serveur et renvoie une liste.
  • response.getheader(name) : récupère les informations d'en-tête de réponse du nom spécifié.

L'exemple est le suivant :

import urllib.request

# 发送 GET 请求
response = urllib.request.urlopen('http://www.example.com')

# 获取服务器响应的内容
content = response.read()

# 获取服务器响应的头信息
headers = response.getheaders()

# 获取指定名称的响应头信息
content_type = response.getheader('Content-Type')

# 打印结果
print(content)
print(headers)
print(content_type)

Dans cet exemple, nous envoyons d'abord une requête GET et obtenons la réponse du serveur. Ensuite, nous avons appelé respectivement les méthodes Response.read(), Response.getheaders() et Response.getheader(name) pour obtenir le contenu, les informations d'en-tête et les informations d'en-tête de réponse du nom spécifié à partir de la réponse du serveur. Enfin, imprimez les résultats.

Résumé

En résumé, nous avons appris à utiliser le module urllib.request pour envoyer des requêtes HTTP. Grâce au module urllib.request, nous pouvons facilement envoyer des requêtes GET, des requêtes POST, télécharger des données de formulaire, définir des en-têtes de requête, etc. Ceci nous est très utile pour interagir avec le serveur, obtenir des données, etc.

J'espère que cet article aidera tout le monde à comprendre et à utiliser le module urllib.request. Merci d'avoir lu!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn