Python的requests模块是一个非常流行的HTTP库,通常用于发送HTTP请求和处理相应。它非常适合进行API交互、网页数据抓取等任务。这个库以其简单易用的特点受到开发者的青睐。接下来,我们将探讨requests模块的基本用法,并通过代码示例进行演示。

安装requests模块

在使用requests模块之前,需要确保其已安装。可以通过以下命令安装:

pip install requests

基本用法

requests模块最基本的用法是发送GET和POST请求。

发送GET请求

GET请求用于从指定的资源获取数据。以下是一个使用requests模块发送GET请求的示例:

import requests

def get_example():
    url = "https://api.github.com/users/octocat"
    response = requests.get(url)

    if response.status_code == 200:
        data = response.json()  # 将响应内容转为JSON格式
        print("用户信息:", data)
    else:
        print("请求失败,状态码:", response.status_code)

if __name__ == "__main__":
    get_example()

在这个示例中,我们请求了GitHub用户“octocat”的信息。如果请求成功并返回状态码200,则输出用户信息,否则输出失败状态码。

发送POST请求

POST请求通常用于向服务器提交数据。下面是发送POST请求的示例:

import requests

def post_example():
    url = "https://httpbin.org/post"
    data = {
        "name": "John",
        "age": 30
    }
    response = requests.post(url, json=data)

    if response.status_code == 200:
        print("响应内容:", response.json())
    else:
        print("请求失败,状态码:", response.status_code)

if __name__ == "__main__":
    post_example()

在这个例子中,我们发送了一些JSON格式的数据到httpbin.org。如果请求成功,可以看到服务器返回的数据,通常包括我们发送的数据。

请求参数和头信息

在使用requests发送请求时,还可以添加查询参数和自定义请求头。例如:

import requests

def get_with_params():
    url = "https://api.github.com/search/repositories"
    params = {
        "q": "requests",
        "sort": "stars",
        "order": "desc"
    }
    headers = {
        "Accept": "application/vnd.github.v3+json"
    }
    response = requests.get(url, params=params, headers=headers)

    if response.status_code == 200:
        print("热门库:", response.json())
    else:
        print("请求失败,状态码:", response.status_code)

if __name__ == "__main__":
    get_with_params()

在这个例子中,我们使用查询参数来搜索“requests”库,指定了排序方式和请求头信息。

处理响应

requests模块提供了多种方法来处理HTTP响应。例如,获取响应状态码、响应头和内容等。

def handle_response():
    url = "https://api.github.com"
    response = requests.get(url)

    print("状态码:", response.status_code)
    print("响应头:", response.headers)
    print("响应内容(文本格式):", response.text)
    print("响应内容(JSON格式):", response.json())

if __name__ == "__main__":
    handle_response()

通过上述代码,你可以获取到请求的状态码、响应头以及不同格式的内容。

总结

requests模块是一个功能强大的HTTP库,简化了HTTP请求的发送和处理。通过多种方法,可以轻松与API交互,获取或提交数据。只需要掌握基础用法,就能在项目中发挥其强大的作用。无论在数据抓取、API调用还是网络爬虫中,requests都是一个不可或缺的工具。希望这篇文章能帮助你更好地理解和使用requests模块。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部