Python Requests模块简介

Requests 是 Python 中一个优雅而简单的 HTTP 库,专门为人类设计。它允许你发送 HTTP/1.1 请求,无需手动添加查询字符串到 URL,或表单编码 POST 数据。

注意: 在开始使用 Requests 之前,需要先安装它。可以使用 pip 命令:pip install requests

基本用法

发送 GET 请求

GET 请求是最常见的 HTTP 请求类型,用于从服务器获取数据。

发送 POST 请求

POST 请求通常用于向服务器提交数据,如表单数据。

请求参数

在发送请求时,可以传递各种参数来定制请求。

URL 参数

可以使用 params 参数传递 URL 查询参数。

请求头

可以使用 headers 参数设置请求头。

处理响应

Requests 提供了多种方式来处理服务器响应。

响应内容

可以使用不同的属性获取响应内容:

响应状态码和头信息

注意: 在实际应用中,应该总是检查状态码,确保请求成功后再处理响应内容。

高级功能

会话对象

使用会话对象可以在多个请求之间保持某些参数,如 cookies。

超时设置

可以为请求设置超时时间,避免长时间等待。

实际应用示例

获取网页内容并提取信息

import requests
from bs4 import BeautifulSoup

# 获取网页内容
response = requests.get('https://httpbin.org/html')

# 检查请求是否成功
if response.status_code == 200:
    # 使用 BeautifulSoup 解析 HTML
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # 提取标题
    title = soup.find('h1')
    if title:
        print('页面标题:', title.get_text())
else:
    print('请求失败,状态码:', response.status_code)

下载文件

import requests

# 下载文件
url = 'https://httpbin.org/image/jpeg'
response = requests.get(url, stream=True)

# 检查请求是否成功
if response.status_code == 200:
    # 以二进制模式打开文件
    with open('image.jpg', 'wb') as f:
        # 分块写入文件
        for chunk in response.iter_content(chunk_size=8192):
            f.write(chunk)
    print('文件下载完成')
else:
    print('下载失败,状态码:', response.status_code)