requests在python中发送请求的实例讲解

什么是requests模块

requests是一个常用的Python第三方库器,主要用于获取Web页面的内容,还能处理登录,Cookie,会话等HTTP相关的内容。 事实上,requests是Python中实现HTTP通信的最好方法之一,它可以替代Python内置的urllib模块,本文将详细介绍requests库的使用方法。

requests模块的安装

requests库可以通过pip工具进行安装,在命令行中输入如下命令即可:

pip install requests

使用requests发送请求

发送GET请求

直接发一个get请求,可以使用requests.get()方法。下面是一个简单的例子:

import requests

r = requests.get('https://www.baidu.com')

上面的代码发送了一个GET请求到百度,然后返回一个response对象,可以通过response对象的.text方法获取网页的内容,如下所示:

import requests

r = requests.get('https://www.baidu.com')

print(r.text)

上面的代码将会输出百度的HTML源码。

发送POST请求

如果要发送一个POST请求,需要使用requests.post()方法,下面是一个例子:

import requests

data = {'username': 'your_username', 'password': 'your_password'}

r = requests.post('https://www.example.com/login', data)

上面的代码中,我们传递了一个字典作为请求的数据。这个字典包含了用户名和密码。

请求头设置

在发送请求的时候,我们经常需要设置一些请求头。requests模块允许我们通过headers参数来设置请求头,下面是一个例子:

import requests

headers = {'User-Agent': 'Mozilla/5.0'}

r = requests.get('https://www.example.com', headers=headers)

上面的代码中,我们通过headers参数设置了请求头。这个请求头中包含了User-Agent信息,模拟了Mozilla Firefox浏览器的请求,这样服务器就不会拒绝我们的请求。

处理请求的响应

requests库返回的response对象包含了Web服务器响应的信息,我们需要对这些信息进行处理。最常见的是访问响应的内容,下面是一个例子:

import requests

r = requests.get('https://www.example.com')

print(r.content)

上面的代码中,我们使用了content属性获取了响应的内容。content属性返回一个bytes对象,如果要将其转换为字符串,需要调用decode()方法。

处理响应的状态码

requests库还提供了一种方便的方式来处理HTTP状态码,可以通过response对象的status_code属性获取服务器返回的状态码,下面是一个例子:

import requests

r = requests.get('https://www.example.com')

print(r.status_code)

上面的代码中,我们使用了status_code属性获取了响应的状态码,如果状态码为200,那么就表示请求成功。如果状态码为404,就表示请求的页面不存在。状态码的含义可以在HTTP协议中找到。

处理响应的头部信息

requests库还提供了一种方式来处理HTTP响应的头部信息,可以通过response对象的headers属性来获取头部信息,下面是一个例子:

import requests

r = requests.get('https://www.example.com')

print(r.headers)

上面的代码中,我们使用了headers属性获取了响应的头部信息。这个头部信息包含了Web服务器返回的所有HTTP头.

上传文件

requests库也允许我们上传文件。上传文件需要使用post方法,同时,请求的数据是一个字典对象,包括文件的文件名和文件路径。下面是一个例子:

import requests

url = 'http://httpbin.org/post'

files = {'file': open('example.txt', 'rb')}

r = requests.post(url, files=files)

print(r.text)

上面的代码中,我们上传了一个example.txt文件到http://httpbin.org/post网站。

总结

requests库是Python中最强大的发送HTTP请求的工具之一。它提供了很多方法来处理HTTP请求和响应,并且使用起来非常方便。使用requests库,可以快速地获取服务器的响应,并进行后续的处理。

后端开发标签