您的位置:

Python requests模块使用教程

随着互联网的发展,我们越来越依赖于网络这个工具来处理事务。如何快速地发送HTTP请求、处理响应成为了一项基本技能。requests是一个Python的第三方库,它可以轻松处理GET/POST等HTTP协议的请求,是一个非常强大但又非常易于使用的库。在这篇教程中,我们将对Python requests模块做详细的介绍,包括安装方法、基本使用方法、进阶使用方法等。

一、安装requests模块

在使用Python requests模块之前,我们需要先进行安装。Python requests模块可以很方便地通过pip来安装。打开终端,输入以下命令:

pip install requests

安装完成后,我们就可以在程序中使用requests模块了。

二、发送HTTP请求

发送HTTP请求是requests模块的核心功能之一。requests模块支持多种请求方式,包括GET、POST、PUT、DELETE等。在这里我们以GET和POST两种请求方式为例进行介绍。

1、发送GET请求

requests.get()方法可以轻松处理GET请求。以百度搜索为例:

import requests

response = requests.get('https://www.baidu.com/s', params={'wd': 'Python'})

print(response.text)

在这个例子中,我们使用requests.get()方法向百度搜索发送了一个GET请求,携带了参数‘wd: Python’。得到的响应内容会被输出。

2、发送POST请求

requests.post()方法可以轻松处理POST请求。以微博登录为例:

import requests

data = {
    'username': 'xxx',
    'password': 'xxx'
}

response = requests.post('https://passport.weibo.cn/sso/login', data=data)

print(response.text)

在这个例子中,我们使用requests.post()方法向微博登录页面发送了一个POST请求,携带了用户名和密码。得到的响应内容会被输出。

三、处理响应

requests模块发送请求后,服务器会返回响应结果,一般情况下,响应结果包含响应状态码、响应头、响应内容等。requests模块可以轻松地获取这些响应信息。

1、获取响应状态码

在响应结果中,状态码是一个非常重要的参数。我们可以通过response.status_code属性获取响应状态码。以百度搜索为例:

import requests

response = requests.get('https://www.baidu.com/s', params={'wd': 'Python'})

print(response.status_code)

上面的代码会输出200,代表请求成功。

2、获取响应头

有时候我们需要获取响应头的信息,可以通过response.headers属性获取响应头信息。以微博登录为例:

import requests

data = {
    'username': 'xxx',
    'password': 'xxx'
}

response = requests.post('https://passport.weibo.cn/sso/login', data=data)

print(response.headers)

上面的代码会输出微博登录响应的头信息。

3、获取响应内容

我们还可以通过response.text或response.content属性获取响应的内容。以百度搜索为例:

import requests

response = requests.get('https://www.baidu.com/s', params={'wd': 'Python'})

print(response.text)

上面的代码会输出百度搜索页面的HTML源代码。

四、进阶使用方法

除了上面介绍的基本使用方法外,requests模块还提供了一些进阶的使用方法,下面列举一些常用的进阶使用方法。

1、设置请求头

有时候我们需要在请求中添加一些header信息,可以使用requests.get()方法或requests.post()方法的headers参数添加。以知乎首页为例:

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'
}

response = requests.get('https://www.zhihu.com', headers=headers)

print(response.text)

上面的代码会输出知乎首页的HTML源代码。

2、设置超时时间

有时候我们需要设置请求的超时时间,以防止程序长时间无响应,可以使用requests.get()方法或requests.post()方法的timeout参数进行设置。以微博登录为例:

import requests

data = {
    'username': 'xxx',
    'password': 'xxx'
}

response = requests.post('https://passport.weibo.cn/sso/login', data=data, timeout=3)

print(response.text)

上面的代码会在3秒内获取微博登录的响应结果,超过3秒则会抛出一个timeout异常。

3、使用代理IP

有时候我们需要使用代理IP来发送HTTP请求,可以在requests.get()方法或requests.post()方法中设置proxies参数进行设置。以豆瓣电影为例:

import requests

proxies = {
    'http': 'http://xxx.xxx.xxx.xxx:xxxx',
    'https': 'https://xxx.xxx.xxx.xxx:xxxx'
}

response = requests.get('https://movie.douban.com', proxies=proxies)

print(response.text)

上面的代码会使用代理IP发送请求,获取豆瓣电影首页的HTML源代码。

总结

在本篇教程中,我们介绍了Python requests模块的安装方法、基本使用方法、进阶使用方法等。希望通过这篇教程,您能够掌握requests模块的基本使用,提升自己的编程效率。