Python Requests 学习笔记

简介

requests 是一个 Python 的 HTTP 库,简化了与 HTTP 服务的通信过程,常用于爬虫、接口测试等场景。本文将介绍 requests 的基本使用方法和一些实际应用案例。

安装

通过 pip 可以非常方便地安装 requests 库:

Copy Code
pip install requests

发送 GET 请求

requests 提供了 get 方法用于发送 GET 请求,该方法返回一个 Response 对象,包含了响应内容、状态码等信息。

下面是一个简单的示例,发送一个 GET 请求获取百度首页的 HTML 内容:

pythonCopy Code
import requests url = 'https://www.baidu.com/' response = requests.get(url) print(response.text) # 输出响应内容

发送 POST 请求 with data

除了 GET 请求,我们还可以发送 POST 请求,可以通过 data 参数来指定请求体,也可以通过 json 参数以 JSON 格式提交数据。

下面是一个示例,发送一个 POST 请求提交表单数据到服务器:

pythonCopy Code
import requests url = 'https://httpbin.org/post' data = {'username': 'admin', 'password': '123456'} response = requests.post(url, data=data) print(response.json()) # 输出响应内容

发送 POST 请求 with json

下面是一个示例,发送一个 POST 请求提交 JSON 数据到服务器:

pythonCopy Code
import requests url = 'https://httpbin.org/post' json_data = {'username': 'admin', 'password': '123456'} response = requests.post(url, json=json_data) print(response.json()) # 输出响应内容

文件上传

requests 也可以很方便地实现文件上传,通过 files 参数指定上传的文件信息。

下面是一个示例,上传一个本地的图片文件到服务器:

pythonCopy Code
import requests url = 'https://httpbin.org/post' files = {'image_file': open('test.png', 'rb')} response = requests.post(url, files=files) print(response.json()) # 输出响应内容

SSL 验证

对于 HTTPS 请求,requests 默认会验证 SSL 证书,如果 SSL 证书无效,将会抛出 SSLError 异常。如果你不想做证书验证,可以将 verify 参数设置为 False

下面是一个示例,发送一个 HTTPS 请求,同时禁用 SSL 验证:

pythonCopy Code
import requests url = 'https://www.12306.cn/mormhweb/' response = requests.get(url, verify=False) print(response.text) # 输出响应内容

总结

requests 是一个非常实用的 Python HTTP 库,可以帮助我们完成各种 HTTP 请求操作。除了上述介绍的常见用法,它还有很多强大的功能,如 Session、Cookie 管理、代理设置等,可以根据实际需求自行学习和使用。