【Python爬虫开发基础⑪】requests库概述(GET和POST请求)

news/2025/2/12 18:35:26/

🚀个人主页:为梦而生~ 关注我一起学习吧!
💡专栏:python网络爬虫从基础到实战 欢迎订阅!后面的内容会越来越有意思~
💡往期推荐
⭐️前面比较重要的基础内容
【Python爬虫开发基础⑥】计算机网络基础(Web和HTTP)
【Python爬虫开发基础⑦】urllib库的基本使用
【Python爬虫开发基础⑧】XPath库及其基本用法
【Python爬虫开发基础⑨】jsonpath和BeautifulSoup库概述及其对比
【Python爬虫开发基础⑩】selenium概述
⭐️爬虫的实战文章
【Python爬虫开发实战①】使用urllib以及XPath爬取可爱小猫图片
【Python爬虫开发实战②】使用urllib以及jsonpath爬取即将上映电影信息
大家可以复制代码感受一下爬虫的魅力~
💡本期内容:本期我们要讲一个爬虫常用的库:requests,它的功能能够完全覆盖urllib,并且要比urllib简单易操作,下面我们马上开始吧!


文章目录

  • 1 requests库简介
  • 2 发送GET请求
  • 3 发送POST请求
  • 4 参数传递


1 requests库简介

requests 是一个用于发送 HTTP 请求的流行 Python 库。它提供了简洁而直观的 API,使得与 Web 服务进行交互变得非常方便。requests 库可以完成多种 HTTP 请求操作,如发送 GET、POST、PUT、DELETE 等请求,设置请求头、处理响应以及会话管理等功能。

下面是 requests 库的一些主要特点和功能:

  • 简洁易用:requests 的 API 设计非常简单易懂,上手容易,使用它可以轻松地发送 HTTP 请求、处理响应等操作。

  • 支持多种请求方式:requests 支持发送多种类型的 HTTP 请求,包括 GET、POST、PUT、DELETE 等,并且支持自定义请求头、请求参数、请求体等。

  • 会话管理requests.Session 类提供了会话管理功能,可以在多个请求之间保持会话状态,例如保持登录状态、传递 cookie 等。

  • 强大的响应处理能力:requests 可以方便地处理各种类型的响应结果,包括文本、JSON、图片、文件等,还支持响应的编码和解码。

  • 完善的错误处理机制:requests 对网络请求中可能出现的异常情况进行了处理,如超时、连接错误等,同时提供了对 HTTP 错误状态码的处理功能。

与其他库一样,如需要安装requests库,使用一下命令即可

pip install requests

2 发送GET请求

使用 requests 库发送 GET 请求非常简单,只需要调用 requests.get() 方法,并传入目标 URL 即可。

import requests# 发送 GET 请求
url = 'https://api.example.com/users'
response = requests.get(url)# 检查响应状态码
if response.status_code == 200:# 获取响应内容(文本格式)content = response.textprint(f'Response content: {content}')
else:print('Failed to retrieve data. Status code:', response.status_code)

在上述示例代码中,我们使用了 requests.get() 方法来发送 GET 请求,并指定目标 URL 为 'https://api.example.com/users'。接着,我们通过检查 response 对象的 status_code 属性来判断请求是否成功(200 表示成功)。如果成功,我们可以通过 response.text 来获取响应内容,并将其打印出来。如果请求失败,则打印相应的错误信息和状态码。

注意:在实际应用中,可能需要更多的参数来发送 GET 请求,例如请求头、请求参数等。requests 库提供了丰富的选项来满足不同场景的需求,可以根据具体情况进行相应的设置。


3 发送POST请求

使用 requests 库发送 POST 请求同样非常简单,需要调用 requests.post() 方法,并传入目标 URL 和请求数据即可。

import requests# 发送 POST 请求
url = 'https://api.example.com/users'
data = {'name': 'John', 'age': 25}
response = requests.post(url, data=data)# 检查响应状态码
if response.status_code == 200:# 获取响应内容(文本格式)content = response.textprint(f'Response content: {content}')
else:print('Failed to submit data. Status code:', response.status_code)

在上述示例代码中,我们使用了 requests.post() 方法来发送 POST 请求,并指定目标 URL 为 'https://api.example.com/users'。其中,data 是一个字典,包含了需要发送给服务器的数据。

接下来,我们使用 response 对象的 status_code 属性来检查请求是否成功(200 表示成功)。如果成功,我们可以通过 response.text 来获取响应内容,并将其打印出来。如果请求失败,则打印相应的错误信息和状态码。


4 参数传递

在使用 requests 库发送请求时,你可以通过参数来传递额外的信息,例如请求头、请求参数、认证凭据等。

  1. headers:用于设置请求头,包含了请求的元数据信息,如 User-Agent、Content-Type 等。
  2. params:用于传递查询字符串参数,将参数附加到 URL 上。
  3. data:用于传递表单数据或请求体数据,常用于 POST 请求。
  4. json:用于传递 JSON 数据,常用于 POST 请求。
  5. auth:用于进行身份验证,支持多种验证方式,如基本身份验证 (Basic Authentication)、摘要身份验证 (Digest Authentication) 等。

示例代码

import requests# 设置请求头
headers = {'User-Agent': 'Mozilla/5.0'}
url = 'https://api.example.com/users'
params = {'page': 1}
data = {'name': 'John', 'age': 25}
json_data = {'name': 'John', 'age': 25}
auth = ('username', 'password')# 发送 GET 请求(带请求头和查询字符串参数)
response = requests.get(url, headers=headers, params=params)# 发送 POST 请求(带请求头和表单数据)
response = requests.post(url, headers=headers, data=data)# 发送 POST 请求(带请求头和 JSON 数据)
response = requests.post(url, headers=headers, json=json_data)# 发送带身份验证的请求
response = requests.get(url, auth=auth)

在上述示例代码中,我们使用了不同的参数来发送请求。通过传递 headers 参数可以设置请求头,传递 params 参数可以将查询字符串参数附加到 URL 上,传递 data 参数可以传递表单数据或请求体数据,传递 json 参数可以传递 JSON 数据,传递 auth 参数可以进行身份验证。

另外,可以参考官方文档或库的文档来了解更多参数细节和使用方法。


http://www.ppmy.cn/news/812769.html

相关文章

使用树莓派红外控制空调和风扇

使用树莓派红外控制空调和风扇 一. 硬件连接: 红外接收器 vcc 连 pin1 (3.3v)

数据中心机房空调技术研发创新探讨

摘要:“互联网”时代,云计算、大数据等应用使得数据中心规模化、大型化成为主流,数据中心节能也备受关注,特别是机房空调能耗占据整个数据中心近40%。大型数据中心怎样才能提高数据中心制冷效率?作为专业的空调制造商&#xff0c…

应用案例 | 2011 款宝马525Li车空调出风温度异常故障诊断

故障现象 一辆2011款宝马525Li车(车型代号为 F18),搭载N52发动机,累计行驶里程约为10.6万km。客户反映,接通空调开关制冷时,中央出风口吹冷风,脚部出风口吹热风。 故障诊断 接车后试车&#…

UML类图中类之间的五种关系

📋 前言 🖱 博客主页:在下马农的碎碎念🤗 欢迎关注🔎点赞👍收藏⭐️留言📝✍ 本文由在下马农原创,首发于CSDN📆 首发时间:2021/12/25📅 最近更新时…

用大数据做空调

互联网与传统行业之争昨日再度引发了热议。“格力生产空调看起来是传统行业,但实际上我们也运用了大数据思维,”董明珠向记者表示。 “虚拟的世界不能支撑人的生命”,董明珠认为当下的生活环境、生活方式的改变就是大数据时代、互联网时代带来…

DIY远程空调遥控(考研已断更)

现在宿舍都有空调 所以可以搞一搞自己动手干一个遥控器在手机里,下课别人飞奔回宿舍回宿舍开空调的时候,你可以冷静的打开空调,回去就能享受清凉!!! 夏日炎炎,这不香嘛!顺便祝董瑞…

【单片机毕业设计】【mcuclub-jj-017】基于单片机的空调的设计

最近设计了一个项目基于单片机的空调系统,与大家分享一下: 一、基本介绍 项目名:空调 项目编号:mcuclub-jj-017 单片机类型:STC89C52 具体功能: 1、通过红外接收头和遥控器,可控制空调 2、遥控…

计算机教室要配备空调吗,孩子们教室里的空调 到底要不要装?能不能装?

已经有家长把装着冰的塑料箱搬进教室。 有温州的家长拍到孩子大汗淋漓上课的照片。 浙江在线5月25日讯(浙江在线记者 梁建伟)大家应该还记得,前段时间杭州高温天猝不及防地来了,教室里没有空调的学生们,面对一波波热浪,用尽解数&a…