Cet article est organisé sur la base de documents officiels, et les interfaces de données sont toutes fournies dans des documents officiels
Selon les documents officiels, la demande est un non-OGM Bibliothèque HTTP Python. Fonctions puissantes et syntaxe concise. On peut dire que les requêtes sont inévitables lors de l’écriture de programmes Web en Python.
Bien que les requêtes soient simples à utiliser, la plupart de ses fonctions n'ont pas besoin d'être utilisées fréquemment. Mais il est plus fastidieux de vérifier la documentation lorsque vous devez l'utiliser. Donc je souhaite aussi faire un tri et une synthèse. C'est pratique pour vous et pour les autres.
Joindre l'adresse officielle du document
# 安装。注意,千万别安装成request,别少了末尾的spip install resquests复制代码
Importez d'abord le module Requêtes
import requests复制代码
r = requests.get('http://httpbin.org/get')# post带参r = requests.post('http://httpbin.org/post', data={'key': 'value'}) r = requests.put('http://httpbin.org/put', data={'key': 'value'}) r = requests.delete('http://httpbin.org/delete') r = requests.head('http://httpbin.org/get') r = requests.options('http://httpbin.org/get')复制代码
requests permet de transmettre des paramètres d'URL. En transmettant des paires clé-valeur de paramètres à la variable params
, les requêtes construiront automatiquement l'URL correspondante.
payload = {'key1': 'value1', 'key2': 'value2'} r = requests.get("http://httpbin.org/get", params=payload)# 注意,字典里值为的None的键并不会被拼接到URL中# 同时,你还可以将列表作为值进行传入payload = {'key1': 'value1', 'key2': ['value2', 'value3']} r = requests.get('http://httpbin.org/get', params=payload) print(r.url)>>> http://httpbin.org/get?key1=value1&key2=value2&key2=value3复制代码
Renvoie les données Unicode du contenu de la réponse via text
. les requêtes décodent automatiquement le contenu du serveur.
# 在需要读取文本信息时,可使用text进行获取r = requests.get('http://httpbin.org/get') r.text复制代码
renvoie les données en octets (binaires) du contenu de la réponse via content
.
# 在需要获取文件时,可通过content获取# 例如获取一张图片并保存r = requests.get('http://httpbin.org/get/xxx.jpg')with open('example.jpg', 'wb') as img: img.write(r)复制代码
traite les données json de réponse via json()
.
import requests r = requests.get('http://httpbin.org/get') r.json()复制代码
Ajoutez des en-têtes à la requête, passez simplement dict
au paramètre headers
# HTTP头部大小写是不敏感的headers = { 'token': token, 'content-type': 'application/json'} url = 'http://httpbin.org/get'r = requests.get(url, headers=headers)复制代码
Lorsque la demande de publication a un corps de requête, vous pouvez utiliser le module json
pour encoder les données
url = 'http://httpbin.org/get'body = {'data': data} r = requests.post(url, data=json.dumps(body))复制代码
En plus d'utiliser json
pour l'encodage, vous pouvez également transmettre directement la valeur du json
paramètre
url = 'http://httpbin.org/get'body = {'data': data} r = requests.post(url, json=body)复制代码
Après avoir lu le fichier sous forme binaire à l'aide de la méthode open
, vous pouvez facilement télécharger le fichier
url = 'http://httpbin.org/post'files = {'file': open('report.xls', 'rb')} r = requests.post(url, files=files)# 同时,可以显式地设置文件名、文件类型和请求头url = 'http://httpbin.org/post'files = {'file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})} r = requests.post(url, files=files)复制代码
Vous pouvez transmettre le cookie en passant des paramètres au paramètre cookies
url = 'http://httpbin.org/cookies'cookies = dict(cookies_are='working') r = requests.get(url, cookies=cookies)# 在跨域使用时,可以通过RequestsCookieJar进行域名和路径的定义jar = requests.cookies.RequestsCookieJar() jar.set('tasty_cookie', 'yum', domain='httpbin.org', path='/cookies') jar.set('gross_cookie', 'blech', domain='httpbin.org', path='/elsewhere') url = 'http://httpbin.org/cookies'r = requests.get(url, cookies=jar)复制代码
Obtenir le code d'état de la réponse via status_code
r = requests.get('http://httpbin.org/get') r.status_code>>> 200# requests内置一个状态码查询对象print(r.status_code == requests.codes.ok)>>> True# 如果发生了4xx或者5xx的错误响应,可以使用raise_for_status()函数来抛出异常bad_r = requests.get('http://httpbin.org/status/404') bad_r.status_code>>> 404bad_r.raise_for_status()# 如果请求没有发生错误,则raise_for_status()返回None复制代码
via headers
Obtenir les en-têtes de réponse
r = requests.get('http://httpbin.org/get') r.headers>>> { 'content-encoding': 'gzip', 'transfer-encoding': 'chunked', 'connection': 'close', 'server': 'nginx/1.0.4', 'x-runtime': '148ms', 'etag': '"e1ca502697e5c9317743dc078f67693f"', 'content-type': 'application/json' } # 同时,我们可以通过任意大小写形式来访问这些响应头字段r.headers['Content-Type']>>> 'application/json'r.headers.get('content-type')>>> 'application/json'复制代码
Obtenir les données des cookies via cookies
url = 'http://example.com/some/cookie/setting/url'r = requests.get(url) r.cookies['example_cookie_name']>>> 'example_cookie_value'复制代码
Par défaut, les demandes traiteront automatiquement toutes les redirections sauf les requêtes HEAD
Le suivi des redirections peut être effectué via la méthode history
# 例如Github 将所有的HTTP请求重定向到HTTPSr = requests.get('http://github.com') r.url>>> 'https://github.com/'r.status_code>>> 200# 如果使用的时GET、OPTIONS、POST、PUT、PATCH、DELETE请求时,可以通过设置allow_redirects=False来禁用重定向r = requests.get('http://github.com', allow_redirects=False) r.status_code>>> 301# 也可以通过设置allow_redirects=True来启用HEAD请求的重定向r = requests.head('http://github.com', allow_redirects=True)复制代码
cet article est un résumé de l'utilisation de base des requêtes. Nous nous référerons plus tard à la documentation officielle pour résumer certaines utilisations avancées. Trions l'utilisation avancée des requêtes. Une utilisation compétente des requêtes aura pour effet d'obtenir deux fois le résultat avec la moitié de l'effort lors du développement Web.
Recommandations d'apprentissage gratuites associées : Tutoriel vidéo Python
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!