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
模块。