首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Python的requests库来发送HTTP请求

使用Python的requests库来发送HTTP请求

原创
作者头像
华科云商小徐
发布于 2025-03-05 03:26:20
发布于 2025-03-05 03:26:20
61000
代码可运行
举报
文章被收录于专栏:小徐学爬虫小徐学爬虫
运行总次数:0
代码可运行

使用 Pythonrequests 庂来发送 HTTP 请求非常简单,requests 是一个流行的第三方库,支持各种类型的 HTTP 请求,并且它的 API 设计非常简洁易用。

1. 安装 requests

如果你还没有安装 requests 库,可以通过以下命令安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install requests

2. 发送常见的 HTTP 请求

(1) 发送 GET 请求

GET 请求用于从服务器获取数据。你可以直接使用 requests.get() 方法发送一个 GET 请求。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
​
# 发送 GET 请求
response = requests.get("https://www.example.com")
​
# 打印响应内容
print(response.status_code)  # 状态码
print(response.text)         # 响应体(网页内容)
(2) 发送 POST 请求

POST 请求用于向服务器发送数据。你可以使用 requests.post() 方法发送一个 POST 请求,并在请求中传递数据。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
​
# 发送 POST 请求并传递数据
data = {"username": "user1", "password": "password123"}
response = requests.post("https://www.example.com/login", data=data)
​
# 打印响应内容
print(response.status_code)
print(response.text)
(3) 发送带查询参数的 GET 请求

你可以通过传递字典的方式在 GET 请求中添加查询参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
​
# 添加查询参数
params = {"q": "Python", "page": 1}
response = requests.get("https://www.example.com/search", params=params)
​
# 打印响应内容
print(response.status_code)
print(response.text)
(4) 发送带 JSON 数据的 POST 请求

如果你想发送 JSON 格式的数据,你可以使用 json 参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
​
# 发送 JSON 数据
data = {"username": "user1", "password": "password123"}
response = requests.post("https://www.example.com/login", json=data)
​
# 打印响应内容
print(response.status_code)
print(response.text)
(5) 添加 HTTP 请求头

你可以通过 headers 参数向请求中添加自定义的 HTTP 头。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
​
# 设置请求头
headers = {
    "User-Agent": "Mozilla/5.0",
    "Accept": "application/json"
}
response = requests.get("https://www.example.com", headers=headers)
​
# 打印响应内容
print(response.status_code)
print(response.text)
(6) 处理响应

响应对象 (response) 包含了许多有用的信息,比如状态码、响应内容、响应头等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
​
response = requests.get("https://www.example.com")
​
# 获取状态码
print(response.status_code)
​
# 获取文本响应内容
print(response.text)
​
# 获取 JSON 响应内容(如果服务器返回的是 JSON 数据)
try:
    json_data = response.json()
    print(json_data)
except ValueError:
    print("响应不是有效的 JSON")
(7) 超时设置

你可以设置请求的超时时间,防止请求一直挂起。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
​
try:
    # 设置请求超时为 5 秒
    response = requests.get("https://www.example.com", timeout=5)
    print(response.text)
except requests.Timeout:
    print("请求超时")
(8) 文件上传

你可以使用 files 参数发送文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests

# 上传文件
files = {"file": open("example.txt", "rb")}
response = requests.post("https://www.example.com/upload", files=files)

# 打印响应内容
print(response.status_code)
print(response.text)
(9) 处理重定向

requests 默认会自动处理 HTTP 重定向。如果你想禁用这个自动处理,可以使用 allow_redirects 参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests

response = requests.get("https://www.example.com", allow_redirects=False)
print(response.status_code)  # 如果是 3xx,会显示重定向状态码

3. 异常处理

你可以通过 try...except 来捕获网络请求中的异常,例如网络连接错误或请求超时等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests

try:
    response = requests.get("https://www.example.com")
    response.raise_for_status()  # 检查是否返回了 4xx 或 5xx 错误
except requests.exceptions.RequestException as e:
    print(f"请求错误: {e}")

总结

requests 是一个非常强大且易于使用的库,用于发送 HTTP 请求。你可以使用它来发送各种 HTTP 请求(GET、POST、PUT、DELETE 等),并处理响应。通过设置请求头、添加查询参数、上传文件等方式,你可以实现很多不同类型的网络请求。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 安装 requests 库
  • 2. 发送常见的 HTTP 请求
    • (1) 发送 GET 请求
    • (2) 发送 POST 请求
    • (3) 发送带查询参数的 GET 请求
    • (4) 发送带 JSON 数据的 POST 请求
    • (5) 添加 HTTP 请求头
    • (6) 处理响应
    • (7) 超时设置
    • (8) 文件上传
    • (9) 处理重定向
  • 3. 异常处理
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档