微信关注,获取更多

跟着AI学Python 第13课:requests 网络请求

# === 第13课:requests 网络请求 ===

import requests
import json

# 1. GET 请求:获取数据
print("--- GET 请求 ---")
url = "https://httpbin.org/get"
response = requests.get(url)
print(f"状态码: {response.status_code}")      # 200表示成功
print(f"响应类型: {type(response.text)}")
print(f"响应内容(前100字): {response.text[:100]}")

print()

# 2. 带参数的 GET 请求
print("--- 带参数请求 ---")
params = {
    "name": "火鸟",
    "course": "Python"
}
response = requests.get("https://httpbin.org/get", params=params)
data = response.json()                         # 把JSON响应转成字典
print(f"请求参数: {data['args']}")

print()

# 3. POST 请求:提交数据
print("--- POST 请求 ---")
post_data = {
    "username": "firebird",
    "message": "Hello from Python!"
}
response = requests.post("https://httpbin.org/post", data=post_data)
result = response.json()
print(f"提交的数据: {result['form']}")

print()

# 4. 获取 JSON 数据(模拟API调用)
print("--- 获取JSON数据 ---")
# 使用公开的测试API
response = requests.get("https://httpbin.org/json")
data = response.json()
print(f"JSON数据: {json.dumps(data, ensure_ascii=False, indent=2)[:200]}")

print()

# 5. 设置请求头
print("--- 自定义请求头 ---")
headers = {
    "User-Agent": "MyPythonBot/1.0",
    "Accept": "application/json"
}
response = requests.get("https://httpbin.org/headers", headers=headers)
result = response.json()
print(f"请求头中的User-Agent: {result['headers']['User-Agent']}")

print()

# 6. 异常处理(第8课知识)
print("--- 异常处理 ---")
try:
    response = requests.get("https://httpbin.org/status/404", timeout=5)
    response.raise_for_status()               # 如果状态码不是200,抛出异常
    print("请求成功")
except requests.exceptions.HTTPError:
    print(f"HTTP错误: {response.status_code}")
except requests.exceptions.Timeout:
    print("请求超时")
except requests.exceptions.ConnectionError:
    print("连接失败")
except requests.exceptions.RequestException as e:
    print(f"请求异常: {e}")

print()

# 7. 实战:获取公开API数据
print("--- 实战:获取公开信息 ---")
try:
    # 获取随机用户信息(公开API)
    response = requests.get("https://httpbin.org/uuid", timeout=10)
    data = response.json()
    print(f"获取到的UUID: {data['uuid']}")
    print("网络请求成功!")
except Exception as e:
    print(f"请求失败: {e}")
    print("提示:该API需要网络连接,请检查网络")

未经允许不得转载:百花谷博客 » 跟着AI学Python 第13课:requests 网络请求

评论

8+6=

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏