Requests,一个发送HTTP请求与处理响应无敌的 Python 库

liftword3周前 (12-07)技术文章18
# 小伙伴们,今天我们要学习的可是一个超级实用的Python库——**Requests**!
它简化了HTTP请求的处理过程,让我们能够轻松地向网站发送请求并获取响应。
无论是爬取网页数据,还是与API进行交互,Requests都是我们的得力助手。
接下来,就让我们一起揭开Requests的神秘面纱吧!

## 一、Requests初体验

### 安装Requests

首先,我们需要安装Requests库。打开你的命令行工具,输入以下命令:

```bash
pip install requests

安装完成后,我们就可以开始使用Requests来发送HTTP请求了。

发送GET请求

GET请求是最常见的HTTP请求之一,通常用于获取资源。

import requests

# 发送GET请求
response = requests.get('https://api.github.com')

# 打印响应状态码
print(response.status_code)

# 打印响应内容
print(response.text)

上面的代码会向GitHub的API发送一个GET请求,并打印出响应的状态码和内容。

小贴士

  • 响应状态码是一个整数,表示请求的处理结果。常见的状态码有200(成功)、404(未找到)等。
  • 响应内容通常是一个字符串,包含了服务器返回的数据。

二、Requests的进阶用法

发送带参数的GET请求

有时候,我们需要在GET请求中传递参数。这可以通过params参数来实现。

# 发送带参数的GET请求
params = {'q': 'python'}
response = requests.get('https://api.github.com/search/repositories', params=params)

# 打印响应内容
print(response.json())

上面的代码会向GitHub的搜索API发送一个带参数的GET请求,搜索与“python”相关的仓库,并打印出响应的JSON格式数据。

发送POST请求

POST请求通常用于提交数据,比如表单提交或API调用。

# 发送POST请求
data = {'username': 'testuser', 'password': 'testpass'}
response = requests.post('https://example.com/login', data=data)

# 打印响应状态码
print(response.status_code)

上面的代码会向一个示例网站的登录接口发送一个POST请求,并提交用户名和密码。

小贴士

  • POST请求的数据通常是一个字典或JSON格式的数据。
  • 在发送POST请求时,要确保URL是正确的,并且数据格式符合API的要求。

三、Requests的高级特性

处理响应

Requests提供了丰富的响应处理功能,比如获取响应头、响应体等。

# 获取响应头
headers = response.headers
print(headers)

# 获取响应体中的JSON数据
json_data = response.json()
print(json_data)

上面的代码演示了如何获取响应头和响应体中的JSON数据。

异常处理

在网络请求中,难免会遇到各种异常情况,比如网络超时、连接错误等。Requests提供了异常处理机制来帮助我们应对这些情况。

try:
    response = requests.get('https://example.com/notfound')
    response.raise_for_status()  # 如果响应状态码不是200,会引发HTTPError异常
except requests.exceptions.HTTPError as errh:
    print("Http Error:", errh)
except requests.exceptions.ConnectionError as errc:
    print("Error Connecting:", errc)
except requests.exceptions.Timeout as errt:
    print("Timeout Error:", errt)
except requests.exceptions.RequestException as err:
    print("OOps: Something Else", err)

上面的代码演示了如何使用Requests的异常处理机制来捕获和处理不同类型的异常。

小贴士

  • 在进行网络请求时,一定要进行异常处理,以避免程序因为网络问题而崩溃。
  • raise_for_status()方法会在响应状态码不是200时引发HTTPError异常,方便我们进行错误处理。

四、Requests的实战应用

爬取网页数据

Requests非常适合用于网页数据的爬取。我们可以使用它来发送请求,并解析响应内容。

# 爬取网页数据
url = 'https://example.com'
response = requests.get(url)

# 解析网页内容(这里使用BeautifulSoup进行解析)
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')

# 打印网页标题
print(soup.title.string)

上面的代码演示了如何使用Requests和BeautifulSoup来爬取网页数据,并解析出网页的标题。

与API交互

Requests也是与API交互的利器。我们可以使用它来调用API接口,并处理返回的数据。

# 与API交互
api_url = 'https://api.github.com/users/octocat'
response = requests.get(api_url)

# 解析API返回的数据
user_data = response.json()
print(user_data['login'])  # 打印用户名

上面的代码演示了如何使用Requests来调用GitHub的API接口,并解析出用户的数据。

五、总结与实践

小伙伴们,今天我们一起学习了Requests库的基础知识,包括如何发送GET和POST请求,如何处理响应和异常,以及Requests在网页爬取和API交互中的实际应用。Requests是一个非常强大的库,它还有很多高级特性等待我们去探索,比如会话管理、认证等。

现在,是时候动手实践了!你可以尝试使用Requests来爬取一个你感兴趣的网页,并解析出其中的一些数据。或者,你也可以尝试调用一个你熟悉的API接口,并处理返回的数据。

记得动手敲代码,有问题随时在评论区问猿小哥哦。祝大家学习愉快,Python学习节节高!

相关文章

Python 必知的 20 个骚操作

记住常见的 Python 技巧,可以帮助改善代码设计,减少出错,节省时间。作者 | Chaitanya Baweja译者 | 罗昭成,责编 | 郭芮出品 | CSDN(ID:CSDNnews)以下为译...

大家最近在用Python玩什么?来看看这七款优质开源项目

Gitee 掐指一算,似乎已经很久没有给大家做语言类的项目推荐了,那么今天就给大家带来一次 Python 专场,看看 Gitee 上的开发者们最近在用 Python 做些什么好玩的项目。1.viole...

Python编程,Flet 控件学习1:文本控件 / 添加、更新

Flet的用户界面控件是普通的 Python 类。要使控件对用户可见,必须将其添加到 Page 或其他控件中。Page 是最顶层的控件,各类控件嵌套在一起成为一棵以 Page 为根的“树”。 初始化控...

使用Python实现自动化数据挖掘与分析工具

阅读文章前辛苦您点下“关注”,方便讨论和分享,为了回馈您的支持,我将每日更新优质内容。如需转载请附上本文源链接!在如今的大数据时代,数据挖掘与分析已经成为企业和研究中不可或缺的环节。通过自动化数据挖掘...

【nis】-个python中非常有用的库

探索 NIS:让 Python 编成更高效的秘密武器在这个数据驱动的时代,Python 作为一种强大的编程语言,得到了广泛的应用。而在众多 Python 其中,NIS(Network Informa...

【rq】一个Python中非常有用的库

在如今的开发环境中,效率就是生产力。而对于那些需要处理大量任务的应用,使用任务队列无疑是一个明智的选择。今天,我们要聊的是Python中一个非常有用的库——rq(Redis Queue)。它能够帮助开...