Python requests库安装与基本用法详解
本文详细介绍Python中requests库的安装方法及基本使用。作为比urllib更简洁的第三方HTTP库,requests支持GET、POST等多种请求方式。文章通过具体代码示例,演示了如何发起基础请求、处理带参数URL、解析JSON响应以及上传文件,帮助开发者快速掌握网络交互的核心技能。
requests库简介与安装
requests 是一个基于 Python 实现的轻量级 HTTP 客户端库,其设计初衷是为了提供比标准库 urllib 更为简洁直观的操作接口。
由于 requests 属于第三方扩展库,并非 Python 内置模块,因此在首次使用前必须通过命令行工具进行安装。
pip install requests
安装流程结束后,在 Python 环境中执行 import 导入操作。若未报错,即表明环境配置成功,可以正式投入开发使用。
基础请求与响应处理
掌握其核心功能前,需了解其基础调用逻辑。
requests.get() 方法用于向目标服务器发送 HTTP GET 请求,该操作返回的对象类型为 HTTPResponse,包含了服务器响应的所有关键信息。
import requests
response = requests.get('http://www.baidu.com')
print(response.status_code) # 打印状态码
print(response.url) # 打印请求url
print(response.headers) # 打印头信息
print(response.cookies) # 打印cookie信息print(response.text) #以文本形式打印网页源码
print(response.content) #以字节流形式打印
执行上述代码后,控制台将输出服务器返回的具体数据。
常见的成功状态码为 200,表示请求已成功被服务器处理。
多种HTTP请求方式
除了 GET 请求,requests 模块还支持多种标准的 HTTP 动词,以适应不同的业务场景。
import requests
requests.get('http://httpbin.org/get')
requests.post('http://httpbin.org/post')
requests.put('http://httpbin.org/put')
requests.delete('http://httpbin.org/delete')
requests.head('http://httpbin.org/get')
requests.options('http://httpbin.org/get')
最基础的使用场景是直接发起一个不带额外参数的 GET 请求。
import requests
response = requests.get('http://httpbin.org/get')print(response.text)
带参数请求与JSON解析
在实际开发中,往往需要向服务器传递查询参数,这可以通过两种主要方式实现。
第一种方式是将查询参数直接拼接在 URL 字符串中,例如在地址后追加问号及键值对。
import requests
response = requests.get(http://httpbin.org/get?name=gemey&age=22)print(response.text)
当服务器返回 JSON 格式的数据时,可以使用 requests 提供的便捷方法进行解析。
import requests
response = requests.get('http://httpbin.org/get')
print(response.text)
print(response.json()) #response.json()方法同json.loads(response.text)
print(type(response.json()))
以下是一个具体的查询案例,展示了如何获取数据并处理。
import requests
URL = 'http://ip.taobao.com/service/getIpInfo.php' # 淘宝IP地址库API
try:
r = requests.get(URL, params={'ip': '8.8.8.8'}, timeout=1)
r.raise_for_status() # 如果响应状态码不是 200,就主动抛出异常
except requests.RequestException as e:
print(e)
else:
result = r.json()
print(type(result), result, sep='\n')
文件上传操作
利用 Requests 模块进行文件上传同样简单,库会自动识别并处理文件的 MIME 类型,无需手动指定复杂的头部信息。
import requests
url = 'http://127.0.0.1:5000/upload'
files = {'file': open('/home/lyb/sjzl.mpg', 'rb')}
#files = {'file': ('report.jpg', open('/home/lyb/sjzl.mpg', 'rb'))} #显式的设置文件名
r = requests.post(url, files=files)
print(r.text)
import requests
url = 'http://127.0.0.1:5000/upload'
files = {'file': ('test.txt', b'Hello Requests.')} #必需显式的设置文件名
r = requests.post(url, files=files)
print(r.text)
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









