寒假打卡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('请求失败')

异常处理

使用 tryexcept 捕获请求异常。

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 解析与数据提取的相关内容,敬请期待!

posted @ 2025-02-06 09:11  aallofitisst  阅读(18)  评论(0)    收藏  举报