python爬虫---requests库的用法详解

1. requests库的介绍

requests库是一个功能强大的HTTP请求库,用于发送各种HTTP请求。它是Python中最受欢迎的网络请求库之一,可以轻松地处理HTTP请求和响应,并提供了简单而直观的API。requests库提供了一个简洁的接口,可以让Python开发者更加容易使用HTTP。

2. 安装requests库

在使用requests库之前,需要先安装它。可以使用pip包管理器来安装requests库,使用以下命令:

pip install requests

3. 发送GET请求

使用requests库发送GET请求非常简单。以下是发送GET请求的基本步骤:

3.1 构建URL

首先,需要构建请求的URL。URL通常由一些基本的元素组成,如协议、主机名、路径和查询参数。可以使用字符串拼接或者使用urllib.parse.urljoin()函数来构建URL。

import requests

url = 'https://api.example.com/users'

3.2 发送请求

接下来,使用requests库的get()函数发送GET请求。get()函数接收一个URL作为参数,并返回一个Response对象。

response = requests.get(url)

3.3 处理响应

最后,可以通过Response对象来处理响应。可以使用Response对象的status_code属性来获取响应的状态码,以判断请求是否成功。可以使用Response对象的text属性来获取响应的内容。

if response.status_code == 200:

print('请求成功')

print(response.text)

else:

print('请求失败')

4. 发送POST请求

使用requests库发送POST请求也非常简单。以下是发送POST请求的基本步骤:

4.1 构建请求参数

首先,需要构建请求参数。请求参数通常是一个字典,包含了要发送的数据。

data = {

'username': 'admin',

'password': '123456'

}

4.2 发送请求

接下来,使用requests库的post()函数发送POST请求。post()函数接收一个URL和一个数据字典作为参数,并返回一个Response对象。

response = requests.post(url, data=data)

4.3 处理响应

最后,可以通过Response对象来处理响应。与发送GET请求类似,可以使用Response对象的属性来获取响应的状态码和内容。

if response.status_code == 200:

print('请求成功')

print(response.text)

else:

print('请求失败')

5. 设置请求头

在发送请求时,可以通过设置请求头来模拟浏览器发送请求。可以使用requests库的headers参数来设置请求头。

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'

}

response = requests.get(url, headers=headers)

6. 设置超时时间

当发送请求时,可以设置超时时间以避免请求长时间无响应。可以使用requests库的timeout参数来设置超时时间。

response = requests.get(url, timeout=5)

7. 处理Cookie

在发送请求时,可能需要处理Cookie。可以使用requests库的cookies参数来设置Cookie。

cookies = {

'session': '1234567890'

}

response = requests.get(url, cookies=cookies)

8. 保存和下载文件

使用requests库可以通过发送HTTP请求来获取文件内容,并将其保存到本地文件。可以使用requests库的content属性来获取文件内容,并使用open()函数将其保存到本地文件。

response = requests.get(url)

with open('file.txt', 'wb') as f:

f.write(response.content)

9. 总结

本文主要介绍了使用requests库发送HTTP请求的基本方法。通过掌握这些基本知识,可以轻松地使用requests库来处理各种HTTP请求。同时,还介绍了一些常用的高级功能,如设置请求头、超时时间、Cookie和文件下载等。

requests库的简洁的API和丰富的功能使得Python开发者可以更加方便地进行HTTP通信,提高了开发效率。因此,掌握requests库的用法对于Python爬虫开发和网络通信非常重要。

后端开发标签