【零基础上手】如何用 requests 发出你的第一个 HTTP 请求三步实战指南【免费下载链接】requestsA simple, yet elegant, HTTP library.项目地址: https://gitcode.com/GitHub_Trending/re/requests当你需要抓一个接口的数据、或者调用外部 API 时用标准库 urllib 写起来又长又难读。这篇文章用三步带你用 requests 这个 Python HTTP 请求库走完安装、发请求到处理错误的完整流程。为什么用 requests 发 HTTP 请求四个让你少写代码的理由读完这节你能给同事讲清楚“为什么发请求用 requests 而不是 urllib”。为人写的接口官网那句口号翻译成大白话就是“面向人类”每种请求方式对应一个方法不用手工拼 URL、手工处理编码。代码短一半GET、POST、PUT、DELETE 都是一行调用同样任务 urllib 要十几行这里三行就够。报错分好类超时、连不上、状态码异常各有一个专门的异常类型捕错时不用猜。会话能复用一个 Session 对象可以连续发多个请求自动带着 Cookie适合登录后继续操作的场景。requests 最快安装步骤两条 pip 命令就能跑读完这节你能在终端完成 requests 的安装并确认装好了。python -m pip install requests python -m pip install --upgrade requests # 已装过就先升到最新版想要最新开发源码的话也可以 git clone 后装git clone https://gitcode.com/GitHub_Trending/re/requests进目录再执行python -m pip install .。requests 入门教程第一步三行代码发出第一个 HTTP 请求读完这节你能发出一个真实的 GET 请求并看懂服务器给你的回应。import requests r requests.get(https://api.github.com/events) print(r.status_code) # 状态码服务器返回的回执200 即成功 print(r.text[:80]) # 响应正文的前 80 个字符status_code就是回执200 表示成功404 表示地址不存在500 表示服务器那边出了状况。r.text是文本正文如果接口返回 JSON直接调r.json()就能拿到字典不用自己解析。requests 使用示例三个高频 HTTP 请求场景照抄就能跑读完这节你能应付日常最常见的三种情况带查询参数、提交数据、自定义请求头。params 传参参数放进字典URL 不会写乱把参数写成字典requests 会自动拼到 URL 后面并做好编码params {key1: value1, key2: value2} r requests.get(https://httpbin.org/get, paramsparams) print(r.url) # 末尾自动带上 ?key1value1key2value2POST 提交表单和 JSON 各一行r requests.post(https://httpbin.org/post, data{name: requests}) r requests.post(https://httpbin.org/post, json{name: requests}) print(r.status_code)data提交的是表单格式json提交的是 JSON 格式服务端要求哪个就用哪个。请求头自定义让服务器知道你是谁请求头就是随请求附带的附加信息有些接口不写 User-Agent 会直接拒收headers {User-Agent: my-app/1.0} r requests.get(https://api.github.com, headersheaders, timeout3) print(r.status_code)顺手加上timeout3服务器 3 秒不回应就中断避免程序一直卡死在那里。requests 超时、连接错误怎么办可直接套用的 try/except 模板读完这节你能把请求代码包上错误处理网络一抖动程序也不会直接崩。try: r requests.get(url, timeout3) # 3 秒超时 r.raise_for_status() # 4xx/5xx 会抛出 HTTPError except requests.exceptions.HTTPError as e: print(HTTP 错误:, e) except (requests.exceptions.ConnectionError, requests.exceptions.Timeout) as e: print(网络错误:, e)raise_for_status()是关键不调用它404 的响应看起来也像成功。requests 的异常都继承自RequestException想兜底时用它接住全部即可。报错原因与处理ConnectionError断网或域名找不到先查网络必要时重试Timeout服务器太慢调大 timeout 值或降低请求频率HTTPError状态码 ≥ 400看数字定位404 查地址、429 被限流、500 是服务端问题玩转 requests 之后四个进阶能力和学习入口读完这节你知道下一步能学什么、去仓库哪里找资料。会话保持创建requests.Session()连续请求复用连接Cookie 自动携带。文件上传用files参数传本地文件自动组装成 multipart 表单。代理proxies参数指定代理服务器请求走它出去。SSL 验证verify传自定义证书路径调试期也可以临时关闭。细节展开想深入可以看 docs/user/advanced.rst快速上手的完整版示例在 docs/user/quickstart.rst仓库里的单元测试是现成的案例库翻翻 tests/test_requests.py 就能看到真实项目怎么写请求。小结把全文串成三步这篇文章带你走完了四步装好 requests、发出第一个请求、练了三个高频场景、再给请求套上错误处理。下一步你可以随手找一个接口地址在终端发一个 GET 请求并打印它的状态码再把 timeout 改掉一次试试。做到这些requests 就能真正用在你的项目里了 【免费下载链接】requestsA simple, yet elegant, HTTP library.项目地址: https://gitcode.com/GitHub_Trending/re/requests创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考