什么是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库,可以快速地获取服务器的响应,并进行后续的处理。