为了账号安全,请及时绑定邮箱和手机立即绑定

requests学习:从入门到初步应用

标签:
Python 爬虫
概述

本文介绍了requests库的基本使用方法,包括发送GET、POST等HTTP请求,处理URL参数和POST请求体参数,以及响应数据的处理。文章还详细讲解了会话管理和错误处理,帮助读者更好地理解和应用requests库。

Requests库简介

什么是requests库

requests库是一个用Python语言编写的库,用于发送HTTP请求。它是Python中处理HTTP请求的首选库,因其简洁易用而广受欢迎。requests库能够方便地发送各种类型的HTTP请求,如GET、POST、PUT等,并提供了强大的功能来处理响应数据。

requests库的主要用途

requests库的主要用途包括但不限于以下几点:

  • 发送HTTP请求:支持GET、POST、PUT、DELETE等多种请求方法。
  • 请求参数的处理:可以轻松添加URL参数和POST请求体参数。
  • 响应数据的处理:能够获取响应状态码、响应内容,并解析JSON数据等。
  • 会话管理:支持会话管理,便于处理需要维持会话状态的请求。
  • 错误处理与调试:具备处理HTTP请求中常见的错误,并提供调试方法。

安装requests库的方法

要使用requests库,首先需要安装该库。可以通过Python包管理工具pip来安装。以下是安装requests库的命令:

pip install requests

安装完成后,就可以在Python环境中使用requests库了。

发送HTTP请求

GET请求的发送方法

GET请求是最常见的HTTP请求方法之一,用于从服务器获取资源。使用requests库发送GET请求非常简单:

import requests

response = requests.get('https://api.github.com/events')
print(response.status_code)
print(response.headers)
print(response.text)

在这个示例中,我们使用requests.get函数发送一个GET请求到指定的URL,并打印了响应的状态码、响应头和响应内容。

POST请求的发送方法

POST请求通常用于向服务器提交数据,比如注册账号、提交表单等。使用requests库发送POST请求同样简单:

import requests

url = 'https://httpbin.org/post'
data = {'key': 'value'}
response = requests.post(url, data=data)
print(response.status_code)
print(response.text)

在这个示例中,我们发送了一个POST请求到https://httpbin.org/post,并传递了一个字典作为请求体参数。然后我们打印了响应的状态码和响应内容。

其他HTTP方法(PUT, DELETE等)的简要介绍

除了GET和POST之外,requests库还支持其他HTTP方法,如PUT和DELETE。以下是如何使用这些方法的示例:

  • PUT请求:用于更新资源
import requests

url = 'https://httpbin.org/put'
data = {'key': 'value'}
response = requests.put(url, data=data)
print(response.status_code)
print(response.text)
  • DELETE请求.
    
    import requests

url = 'https://httpbin.org/delete'
response = requests.delete(url)
print(response.status_code)
print(response.text)


### 请求参数

**URL参数的添加方法**

URL参数用于向GET请求的URL中添加查询字符串。使用requests库添加URL参数可以通过`params`参数实现:

```python
import requests

url = 'https://httpbin.org/get'
params = {
    'param1': 'value1',
    'param2': 'value2'
}
response = requests.get(url, params=params)
print(response.url)
print(response.text)

在这个示例中,params参数是一个字典,其中包含了URL查询字符串中的键值对。requests.get函数会自动将这些键值对添加到URL查询字符串中。

POST请求体参数的添加方法

POST请求体参数可以通过data参数或json参数添加。下面分别演示两种方法:

  • 使用data参数
import requests

url = 'https://httpbin.org/post'
data = {
    'key1': 'value1',
    'key2': 'value2'
}
response = requests.post(url, data=data)
print(response.status_code)
print(response.text)
  • 使用json参数
import requests

url = 'https://httpbin.org/post'
json_data = {
    'key1': 'value1',
    'key2': 'value2'
}
response = requests.post(url, json=json_data)
print(response.status_code)
print(response.text)

使用data参数时,参数会被编码为application/x-www-form-urlencoded格式;而使用json参数时,参数会被编码为application/json格式。

文件上传

requests库还支持文件上传,可以通过files参数实现。以下是一个文件上传的示例:

import requests

url = 'https://httpbin.org/post'
file_to_upload = {'file': open('example.txt', 'rb')}
response = requests.post(url, files=file_to_upload)
print(response.status_code)
print(response.text)

响应处理

获取响应状态码

响应状态码表示服务器对请求的处理结果。使用status_code属性可以获取响应的状态码:

import requests

response = requests.get('https://api.github.com/events')
print(response.status_code)

获取响应内容

响应内容通常是以文本形式返回的,可以通过text属性获取响应的内容:

import requests

response = requests.get('https://api.github.com/events')
print(response.text)

解析JSON数据

如果响应内容是JSON格式的,可以直接使用json属性来解析响应内容:

import requests

response = requests.get('https://api.github.com/events')
print(response.json())

会话管理

什么是会话

在HTTP请求中,会话通常用于在不同的请求之间保持状态。有些API需要通过一个会话来发送多个请求,以维持登录状态或会话令牌。requests.Session对象可以用于管理这些会话。

使用Session对象的示例

下面是一个使用requests.Session对象管理会话的示例:

import requests

session = requests.Session()
login_url = 'https://httpbin.org/post'
data = {
    'username': 'testuser',
    'password': 'testpass'
}
response = session.post(login_url, data=data)
print(response.status_code)

protected_url = 'https://httpbin.org/get'
response = session.get(protected_url)
print(response.text)

在这个示例中,我们使用requests.Session对象来保持登录状态,并在后续请求中使用同一个会话对象。例如,当需要在登录后访问受保护的资源时,会话管理就显得尤为重要。

错误处理与调试

常见错误及解决方法

在使用requests库时,可能会遇到一些常见的错误,以下是一些常见的错误及解决方法:

  • 404 Not Found:请求的资源不存在。
  • 500 Internal Server Error:服务器内部错误。
  • 403 Forbidden:请求被服务器拒绝。
  • 401 Unauthorized:请求需要认证。

解决这些错误的方法通常是根据具体的错误信息进行排查,比如检查URL是否正确、是否需要认证等。

如何调试requests请求

调试requests请求可以通过以下几种方法:

  • 打印响应信息:通过打印响应的状态码、响应头和响应内容来调试。
import requests

response = requests.get('https://api.github.com/events')
print('Status Code:', response.status_code)
print('Headers:', response.headers)
print('Content:', response.text)
  • 使用debug=True:启用requests库的调试模式。
import requests

adapter = requests.adapters.HTTPAdapter(debug=True)
session = requests.Session()
session.mount('https://', adapter)
response = session.get('https://api.github.com/events')
print(response.status_code)
print(response.text)
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消