Python爬虫入门教程:使用requests模块发送HTTP请求
Python爬虫已经成为了数据爬取和分析的一种重要手段。那么,如何使用Python发送HTTP请求呢?这里介绍一种常用的Python HTTP请求库 -- requests模块,它是Python中最流行的HTTP客户端库之一。
1. 准备工作
在开始使用requests模块发送HTTP请求之前,我们需要先安装它。打开命令行窗口,输入以下命令:
pip install requests
2. 发送HTTP请求
使用requests来发送HTTP请求十分简单,只需三个步骤:
1. 导入requests库
2. 调用requests的方法发送HTTP请求
3. 处理响应
在以下示例中,我们将发送一条GET请求,向腾讯新闻API发送请求,获取最新新闻。
import requests
url = 'http://roll.news.qq.com/interface/roll.php?action=0&'
params = {
'pageNum': 1,
'pageSize': 10,
'lid': 1008,
'callback': 'jQuery211087909104084032_1532896662200',
'_': 1532896662202
}
response = requests.get(url, params=params)
print(response.json())
在这个示例中,我们首先导入了requests库。然后,指定请求的URL和参数信息,并使用requests.get方法向该URL发送GET请求。请求所在的URL是一个腾讯新闻API的地址。它包含参数pageNum、pageSize、lid、callback和_。这五个参数是腾讯新闻API所需的,用于获取新闻信息。最后我们使用response.json方法处理响应,得到包含新闻信息的JSON字符串。
这里我们用到了requests.get方法,requests库还提供了其他方法来满足不同的HTTP请求需求:
- requests.head:发送HEAD请求
- requests.post:发送POST请求
- requests.put:发送PUT请求
- requests.patch:发送PATCH请求
- requests.delete:发送DELETE请求
这些请求方法都具有类似的用法,只需要更改方法名即可。
3. 处理HTTP响应
requests库返回的响应信息包含响应状态码、响应头和响应体等元素。
在上面的例子中,我们使用了response.json方法处理响应,获取JSON格式的数据。
requests提供的响应处理方法还包括:
- response.text:返回响应内容的字符串形式
- response.content:返回响应内容的二进制形式
- response.status_code:返回HTTP响应状态码
- response.headers:返回响应头
- response.cookies:返回响应中的Cookies
在进行数据分析时,我们最常用的是response.json方法和response.text方法。借助response.json方法,我们可以将响应内容直接转为JSON格式,进而对数据进行进一步的处理和分析。而使用response.text方法,我们可以直接获取响应内容的字符串形式,然后使用正则表达式等方式对数据进行提取和分析。
使用requests库发送HTTP请求十分方便和灵活,既能发送GET请求,也能发送POST、PUT、PATCH、DELETE等请求,适用于各种不同的数据爬取需求。这里通过使用腾讯新闻API获取新闻信息的示例,介绍了requests库的使用方法,希望能够对大家有所帮助。
