Python requests模块基础使用方法实例及高级应用
1. requests模块基础使用方法
1.1 安装requests模块
首先,在使用requests模块进行Python编程之前,我们需要先安装此模块。可以通过命令行使用pip进行安装,如下所示:
pip install requests
1.2 发送get请求
接下来,我们可以使用requests模块向指定的URL发送get请求,并将服务器返回的内容打印出来。示例代码如下:
import requests
url = 'http://www.baidu.com'
r = requests.get(url)
print(r.text) # 打印响应内容
在该示例中,我们通过get()方法向URL发送了一个get请求,并将响应赋值给了变量r。我们通过r.text属性获取了响应的内容,并将其打印出来。
1.3 发送post请求
除了get请求,我们还可以使用requests模块发送post请求。通常,post请求用于向服务器提交表单数据等内容。下面是一个发送post请求的示例:
import requests
url = 'http://www.example.com/login'
data = {'username': 'admin', 'password': '123456'} # 表单数据
r = requests.post(url, data=data)
print(r.text) # 打印响应内容
在该示例中,我们首先构造了一个包含表单数据的字典数据data,然后使用post()方法向URL发送post请求,并将响应赋值给了变量r。我们同样使用r.text属性获取了响应的内容,并将其打印出来。
2. requests模块高级应用
2.1 自动登录网站
有时候,我们需要模拟登录网站以便访问需要登录权限的内容。这时,我们可以使用requests模块模拟登录网站。注意,对于需要登录的网站,我们往往需要构造好包含登录用表单数据的data变量,以及包含登录相关设置(如User-Agent)的headers变量。示例代码如下:
import requests
url = 'http://www.example.com/login'
data = {'username': 'admin', 'password': '123456'} # 表单数据
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'
} # 登录时的一些设置
s = requests.Session() # 创建一个session对象
s.post(url, data=data, headers=headers) # 通过session对象发送post请求,完成登录
url2 = 'http://www.example.com/profile' # 访问用户信息页面
r = s.get(url2) # 通过session对象发送get请求
print(r.text) # 打印响应内容(用户信息页面)
在该示例中,我们首先模拟登录了名为example.com的网站,然后通过Session对象实现了自动登录功能。在访问其他需要登录权限的内容时,我们只需使用该Session对象发送请求即可。
2.2 抓取网页源码及图片
最后,我们给出一个抓取网页源码及图片的示例代码。该代码将从某张图片的URL中下载该图片,并将网页源码及图片保存到指定的文件中。
import requests
import os
url = 'http://www.example.com/index.html'
r = requests.get(url)
with open('index.html', 'w') as f:
f.write(r.text) # 将网页源码保存到index.html文件中
url2 = 'http://www.example.com/image.jpg'
r2 = requests.get(url2)
with open(os.path.join('images', 'image.jpg'), 'wb') as f:
f.write(r2.content) # 将图片保存到images目录中
print('网页源码及图片下载完成')
在该示例中,我们向example.com发送了一个get请求,并将响应赋值给了变量r。我们可以使用r.text属性获取网页的源码(HTML代码),并将其保存到index.html文件中。同时,我们使用requests模块向example.com获取了一张图片的URL,然后将获得的二进制数据写入images文件夹下的image.jpg文件中。