共计 1952 个字符,预计需要花费 5 分钟才能阅读完成。
HTTP(超文本传输协定)是一个用于传输超文本(如 HTML 页面)的协定,它运行在 TCP/IP 协定族之上。HTTP 协定定义了客户端(通常是 Web 浏览器)与服务器之间的通信形式。在本节中,咱们将学习 HTTP 协定的基本概念并相熟 Python 中常见的 HTTP 库,例如 requests
和urllib
。
HTTP 协定基本概念
- URL(对立资源定位符):用于定位互联网上资源的地址。例如:
https://www.example.com/index.html
。 - 申请与响应:HTTP 协定通信基于申请 - 响应模型。客户端发送申请,服务器响应申请并返回数据。
- 办法:HTTP 申请有多种办法,如 GET、POST、PUT、DELETE 等,用于形容申请操作的类型。例如,GET 用于获取资源,POST 用于发送数据。
- 状态码:HTTP 响应蕴含一个状态码,用于示意申请是否胜利。例如,200 示意胜利,404 示意未找到资源。
- 申请头和响应头 :HTTP 申请和响应能够蕴含头部信息,用于提供额定的元数据。例如,
Content-Type
示意数据的 MIME 类型。
Python 中的 HTTP 库
requests
requests
是一个弱小且易用的 Python HTTP 库。首先,须要装置 requests
库:
pip install requests
上面是一个应用 requests
库发送 GET 申请的示例:
import requests
response = requests.get('https://www.example.com')
print(response.status_code) # 输入状态码,例如:200
print(response.text) # 输入响应文本
发送 POST 申请:
import requests
data = {'key': 'value'}
response = requests.post('https://www.example.com', data=data)
print(response.status_code) # 输入状态码
print(response.text) # 输入响应文本
解决 JSON 数据:
import requests
response = requests.get('https://api.example.com/data')
print(response.status_code) # 输入状态码
# 将响应内容解析为 Python 字典
data = response.json()
print(data)
urllib
urllib
是 Python 规范库中的一个模块,提供了解决 URLs(次要是 HTTP)的一系列性能。上面是一个应用 urllib
发送 GET 申请的示例:
from urllib import request
url = 'https://www.example.com'
response = request.urlopen(url)
print(response.status) # 输入状态码,例如:200
print(response.read().decode('utf-8')) # 输入响应文本
发送 POST 申请:
from urllib import request, parse
url = 'https://www.example.com'
data = {'key': 'value'}
data_encoded = parse.urlencode(data).encode('utf-8') # 编码 POST 数据
response = request.urlopen(url, data=data_encoded)
print(response.status) # 输入状态码
print(response.read().decode('utf-8')) # 输入响应文本
解决 JSON 数据:
import json
from urllib import request
url = 'https://api.example.com/data'
response = request.urlopen(url)
print(response.status) # 输入状态码
# 将响应内容解析为 Python 字典
data = json.loads(response.read().decode('utf-8'))
print(data)
本节介绍了 HTTP 协定的基本概念以及 Python 中的 requests
和urllib
库。理论开发中,举荐应用 requests
库,因为它更加简洁和易用。通过本节的学习,你应该能够编写简略的 Python 网络程序,并理解如何发送 HTTP 申请和解决响应。
举荐浏览:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g
正文完