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.
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.
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.
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.
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().
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 :
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.
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!