- 请求教程
- 请求 - 主页
- 请求 - 概述
- 请求 - 环境设置
- 请求 - Http 请求如何工作?
- 请求 - 处理请求
- 处理 HTTP 请求的响应
- 请求 - HTTP 请求标头
- 请求 - 处理 GET 请求
- 处理 POST、PUT、PATCH 和 DELETE 请求
- 请求 - 文件上传
- 请求 - 使用 Cookie
- 请求 - 处理错误
- 请求 - 处理超时
- 请求 - 处理重定向
- 请求 - 处理历史记录
- 请求 - 处理会话
- 请求 - SSL 认证
- 请求 - 身份验证
- 请求 - 事件挂钩
- 请求 - 代理
- 请求 - 使用请求进行网页抓取
- 请求有用的资源
- 请求 - 快速指南
- 请求 - 有用的资源
- 请求 - 讨论
请求 - 处理请求
在本章中,我们将了解如何使用请求模块。我们将研究以下内容 -
- 发出 HTTP 请求。
- 将参数传递给 HTTP 请求。
发出 HTTP 请求
要发出 Http 请求,我们需要首先导入请求模块,如下所示 -
import requests
现在让我们看看如何使用 requests 模块调用 URL。
让我们在代码中使用 URL - https://jsonplaceholder.typicode.com/users来测试请求模块。
例子
import requests getdata = requests.get('https://jsonplaceholder.typicode.com/users') print(getdata.status_code)
url - https://jsonplaceholder.typicode.com/users使用 requests.get() 方法调用。URL 的响应对象存储在 getdata 变量中。当我们打印变量时,它会给出 200 响应代码,这意味着我们已成功获得响应。
输出
E:\prequests>python makeRequest.py <Response [200]>
要从响应中获取内容,我们可以使用getdata.content来执行此操作,如下所示 -
例子
import requests getdata = requests.get('https://jsonplaceholder.typicode.com/users') print(getdata.content)
getdata.content,将打印响应中的所有可用数据。
输出
E:\prequests>python makeRequest.py b'[\n {\n "id": 1,\n "name": "Leanne Graham",\n "username": "Bret",\n "email": "Sincere@april.biz",\n "address": {\n "street": "Kulas Light ",\n "suite": "Apt. 556",\n "city": "Gwenborough",\n "zipcode": " 92998-3874",\n "geo": {\n "lat": "-37.3159",\n "lng": "81.149 6"\n }\n },\n "phone": "1-770-736-8031 x56442",\n "website": "hild egard.org",\n "company": {\n "name": "Romaguera-Crona",\n "catchPhr ase": "Multi-layered client-server neural-net",\n "bs": "harness real-time e-markets"\n }\n }
将参数传递给 HTTP 请求
仅仅请求 URL 是不够的,我们还需要向 URL 传递参数。
参数大多作为键/值对传递,例如 -
https://jsonplaceholder.typicode.com/users?id=9&username=Delphine
因此,我们的 id = 9 和用户名 = Delphine。现在,将了解如何将此类数据传递给 requests Http 模块。
例子
import requests payload = {'id': 9, 'username': 'Delphine'} getdata = requests.get('https://jsonplaceholder.typicode.com/users', params = payload) print(getdata.content)
详细信息存储在键/值对中的对象有效负载中,并传递给 get() 方法内的 params。
输出
E:\prequests>python makeRequest.py b'[\n {\n "id": 9,\n "name": "Glenna Reichert",\n "username": "Delphin e",\n "email": "Chaim_McDermott@dana.io",\n "address": {\n "street": "Dayna Park",\n "suite": "Suite 449",\n "city": "Bartholomebury",\n "zipcode": "76495-3109",\n "geo": {\n "lat": "24.6463",\n "lng": "-168.8889"\n }\n },\n "phone": "(775)976-6794 x41206",\n " website": "conrad.com",\n "company": {\n "name": "Yost and Sons",\n "catchPhrase": "Switchable contextually-based project",\n "bs": "aggregate real-time technologies"\n }\n }\n]'
我们现在在响应中获取 id = 9 和 username = Delphine 详细信息。
如果您想查看传递参数后 URL 的外观,请使用 URL 的响应对象。
例子
import requests payload = {'id': 9, 'username': 'Delphine'} getdata = requests.get('https://jsonplaceholder.typicode.com/users', params = payload) print(getdata.url)
输出
E:\prequests>python makeRequest.py https://jsonplaceholder.typicode.com/users?id=9&username=Delphine