目录
一:什么是Web请求与响应
Web 请求与响应是 Web 通信的基础。Web 请求由客户端发起,服务器处理后返回响应
1.Web请求
Web 请求通常包括以下几个部分:
- 请求行:包括请求方法(如 GET、POST、PUT、DELETE)、URL和 HTTP 协议版本(如 HTTP/1.1)。
- 请求头:包含关于客户端信息、请求体类型、浏览器类型等的元数据。
- 请求体:在 POST请求中包含用户提交的数据,如表单数据或文件。
2.Web 响应
Web 响应由服务器返回,通常包括以下几个部分:
- 响应行:包括 HTTP 协议版本、状态码和状态消息,
- 响应头:包括关于响应的信息,如内容类型、服务器信息等。
- 响应体:包含实际返回的数据(如 HTML页面、JSON数据等)
3.HTTP 协议概述
HTTP(Hypertext Transfer Protocol)是Web 上传输数据的协议,负责浏览器与服务器之间的通
信。常见的 HTTP方法有:
- GET:请求服务器获取资源,通常用于读取数据。
- POST:提交数据到服务器,通常用于表单提交、文件上传等,
- PUT:更新服务器上的资源,
- DELETE:删除服务器上的资源.
4.常见的 HTTP 状态码包括
- 200 OK:请求成功,服务器返回所请求的数据.
- 301 Moved Permanently:资源已永久移动。
- 404 Not Found:请求的资源不存在,
- 500 Internal Server Error:服务器内部错误。
二:Python的request库
Python的 requests 库是发送 HTTP 请求和处理响应的最常用工具, 它提供了简单、直观的 API使得 Web 请求和响应的操作变得非常容易。通过requests,我们可以轻松地发送 GET、POST请求处理JSON 响应,管理请求头等。
更新国内安装源(aliyun)
1.安装requests 库
在使用 requests 之前,我们需要先安装它。如果你没有安装,可以通过以下命令安装:
2.发送 GET 请求
GET请求通常用于获取数据。我们通过requests.get()来发送 GET 请求,并可以处理返回的响应
- requests.get0)用于发送 GET 请求,获取指定 URL 的数据,
- response.status code 获取 HTTP 响应状态码.
- response.text 获取响应的正文内容(通常是 HTML或 JSON数据)
- response.headers 获取响应头,
- len(response.text)返回响应正文的长度,帮助我们了解返回内容的大小,
执行脚本:
3.发送POST请求
POST 请求用于将数据提交到服务器,通常用于表单提交或上传文件。我们使用requests.post()来发送 POST 请求。
代码解释:
- requests.post0)用于发送 POST请求,将数据提交到服务器。
- data参数是一个字典,包含了我们要提交的数据。requests 会自动将其编码为
application/x-www-fomm-urlencoded 格式 - response.json()用于解析返回的 JSON 数据.
执行脚本:
4.处理响应头和状态码
响应头提供了关于服务器的信息,状态码则告诉我们请求是否成功。我们可以通response.headers获取响应头,通过response.status code 获取状态码
代码解释:
- response.headers返回响应头,包含如 Content-Type、Date、Server 等信息.
- response.status code 返回 HTTP 状态码,
- response.headers.get('Content-Type’)获取响应的内容类型 (如 text/html,application/json).
5.发送带查询参数的GET请求
在GET请求中,我们可以通过URL传递查询参数,例如,访问一个包含参数的URL
代码解释:
params是一个字典,包含要传递的査询参数。requests.get()会自动将这些参数编码到 URL中。
执行代码:
6.发送带表单数据的POST请求
POST请求可以用来提交表单数据,下面的例子展示了如何使用requests 发送带表单数据的POST 请求。
代码解释:
- data 参数是一个字典,包含表单提交的数据,requests 会自动将数据编码为application/x-www-fomm-urlencoded格式
三:处理 JSON 响应
许多 Web AP|返回的数据格式是JSON,Python的 requests 库提供了方便的JSON 处理方法。
代码解释:
- response.json(将响应的内容解析为 Python 字典,方便我们处理 JSON 数据.