寒假打卡20-2月6日
Python 网络请求
在本篇文章中,我们将介绍如何使用 Python 进行网络请求,包括处理 GET 和 POST 请求、解析 JSON 数据、处理 HTTP 状态码和异常。我们将使用 requests 库,它是一个简单易用、功能强大的 HTTP 库。
1. 安装 requests 库
首先,我们需要安装 requests 库。可以使用以下命令通过 pip 安装:
pip install requests
2. 处理 GET 请求
基本用法
使用 requests.get 方法发送 GET 请求,并获取响应。
import requests
response = requests.get('https://api.github.com')
print(response.status_code) # 输出: 200
print(response.text) # 输出: 响应内容
传递参数
使用 params 参数传递查询字符串参数。
params = {'q': 'python', 'sort': 'stars'}
response = requests.get('https://api.github.com/search/repositories', params=params)
print(response.url) # 输出: https://api.github.com/search/repositories?q=python&sort=stars
print(response.json()) # 输出: JSON 响应内容
3. 处理 POST 请求
基本用法
使用 requests.post 方法发送 POST 请求,并传递数据。
data = {'username': 'test', 'password': '123456'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code) # 输出: 200
print(response.json()) # 输出: JSON 响应内容
发送 JSON 数据
使用 json 参数发送 JSON 数据。
json_data = {'username': 'test', 'password': '123456'}
response = requests.post('https://httpbin.org/post', json=json_data)
print(response.status_code) # 输出: 200
print(response.json()) # 输出: JSON 响应内容
4. 解析 JSON 数据
获取 JSON 响应
使用 response.json() 方法解析 JSON 响应。
response = requests.get('https://api.github.com')
data = response.json()
print(data) # 输出: JSON 响应内容
处理 JSON 数据
可以直接操作解析后的 JSON 数据。
response = requests.get('https://api.github.com/search/repositories', params={'q': 'python', 'sort': 'stars'})
data = response.json()
for repo in data['items']:
print(repo['name'], repo['stargazers_count'])
5. HTTP 状态码与异常处理
检查状态码
通过检查 response.status_code 来确认请求是否成功。
response = requests.get('https://api.github.com')
if response.status_code == 200:
print('请求成功')
else:
print('请求失败')
异常处理
使用 try 和 except 捕获请求异常。
try:
response = requests.get('https://api.github.com')
response.raise_for_status() # 如果响应状态码不是 200,引发 HTTPError 异常
except requests.exceptions.HTTPError as err:
print(f'HTTP error occurred: {err}')
except requests.exceptions.ConnectionError as err:
print(f'Connection error occurred: {err}')
except requests.exceptions.Timeout as err:
print(f'Timeout error occurred: {err}')
except requests.exceptions.RequestException as err:
print(f'An error occurred: {err}')
else:
print('请求成功')
总结
在本篇文章中,我们介绍了如何使用 Python 的 requests 库进行网络请求,包括处理 GET 和 POST 请求、解析 JSON 数据、处理 HTTP 状态码和异常。通过掌握这些知识,你能够与 Web 服务进行交互,获取和发送数据。接下来,我们将探讨 HTML 解析与数据提取的相关内容,敬请期待!
浙公网安备 33010602011771号