
示例工程【免费下载链接】python-mini-projectsA collection of simple python mini projects to enhance your python skills项目地址https://gitcode.com/gh_mirrors/py/python-mini-projects点击查看免费下载本篇技术指南基于开源仓库 python-mini-projects 中的 Fetch HTTP status code 项目系统讲解如何使用 Python 标准库urllib结合emoji库以极简代码实现任意 URL / API 的 HTTP 状态码抓取并自动输出“成功/失败”表情符号与对应原因信息。读完本文你将掌握urlopen的基本调用、HTTPError与URLError两类异常的差异化处理以及如何在终端脚本中输出友好、可读的请求诊断结果。项目背景与功能定位在调试接口、巡检网站可用性或编写运维小工具时最基础也最刚需的一步就是确认目标 URL 返回的 HTTP 状态码如 200、404、500。该项目以单个 Python 文件实现这一能力核心特点在于输入用户通过命令行交互输入一个网址或 API 地址输出两行结果——第一行为状态码与 emoji 表情成功显示 失败显示 第二行为与状态码对应的可读消息零第三方 HTTP 框架请求部分完全基于 Python 标准库urllib.request仅额外依赖emoji库用于表情输出。从仓库结构看该功能目录非常精简仅包含 README.md、fetch_http_status_code.py 与 requirements.txt 三个文件是一个适合入门 HTTP 请求与异常处理的最小完整示例。环境准备与依赖安装依赖清单项目的唯一外部依赖定义在 requirements.txt 中emoji0.6.0emoji库负责把:thumbs_up:、:thumbs_down:这类短代码转换为实际的 Unicode 表情符号用于在输出中直观地区分请求成功与失败。注意该版本被固定为0.6.0如需兼容其他版本可自行调整版本号。安装命令在项目目录下执行pip install -r requirements.txt也可以单独安装pip install emoji安装完成后即可运行脚本。urllib属于 Python 标准库无需额外安装这保证了脚本在任意安装了 Python 的机器上都能直接运行。使用方法整个使用流程分为两步安装依赖见上文运行脚本并输入目标 URLpython fetch_http_status_code.py脚本启动后会在终端提示Enter the URL to be invoked:此时输入任意网址或 API 地址并回车即可看到状态码与对应消息。典型运行效果如下访问正常站点时输出类似Status code : 200 与Message : Request succeeded. Request returned message - OK访问不存在的资源时输出Status : 404 与失败原因访问无法解析的域名或网络不通的地址时输出对应的URLError诊断信息。源码逐段解析完整的实现位于 fetch_http_status_code.py全文仅 22 行逻辑分为“导入依赖—读取输入—请求与异常处理”三个部分。1. 导入依赖与读取输入from urllib.request import urlopen from urllib.error import URLError, HTTPError import emoji requestURL input(Enter the URL to be invoked: )urlopen标准库中发起 HTTP 请求的核心函数接受 URL 字符串并返回响应对象HTTPError当服务器返回 4xx / 5xx 等错误状态码时抛出的异常URLError更广义的网络层错误例如域名解析失败、连接被拒绝等emoji第三方表情库仅用于美化输出input()阻塞等待用户在终端输入目标 URL作为整个脚本的唯一参数入口。2. 成功路径正常响应处理try: response urlopen(requestURL) print(Status code : str(response.code) emoji.emojize(:thumbs_up:)) print(Message : Request succeeded. Request returned message - response.reason)当urlopen返回 2xx / 3xx 等成功或可接受的状态码时脚本从响应对象中取出两个属性response.codeHTTP 状态码整数值例如 200response.reasonHTTP 状态短语例如OK、Moved等由服务器在响应行中携带。同时通过emoji.emojize(:thumbs_up:)输出 直观标识请求成功。3. 失败路径一HTTPError服务器明确返回错误码except HTTPError as e: print(Status : str(e.code) emoji.emojize(:thumbs_down:)) print(Message : Request failed. Request returned reason - e.reason)当服务器返回 404、403、500 等错误状态码时urlopen会抛出HTTPError。此时从异常对象中提取e.code服务器返回的错误状态码e.reason对应的状态短语。输出统一附加 表情表示请求失败。值得注意的是HTTPError是URLError的子类因此必须将HTTPError的except分支写在URLError之前否则前者会被后者提前捕获而丢失状态码信息——这正是该脚本异常处理顺序设计的巧妙之处。4. 失败路径二URLError网络层错误except URLError as e: print(Status :, str(e.reason).split(])[0].replace([,) emoji.emojize(:thumbs_down:)) print(Message : str(e.reason).split(])[1])当域名不存在、DNS 解析失败或网络不可达时抛出URLError。其e.reason通常是一个socket.gaierror等底层异常对象其字符串表示形如[Errno 11001] getaddrinfo failed。脚本通过split(])将字符串按]拆分为两部分前半部分去掉[后是错误编号如Errno 11001后半部分是错误描述如getaddrinfo failed。两条信息分别放入“Status”行与“Message”行输出帮助用户快速定位是域名解析问题还是连接问题。HTTP 状态码与脚本行为的对应关系结合脚本逻辑可总结出不同场景下的输入输出对应关系场景异常类型输出示例访问正常页面 / API无异常Status code : 200 /Message : Request succeeded. Request returned message - OK访问不存在资源HTTPErrorStatus : 404 /Message : Request failed. Request returned reason - Not Found服务器内部错误HTTPErrorStatus : 500 /Message : Request failed. Request returned reason - Internal Server Error域名解析失败URLErrorStatus : Errno 11001 /Message : getaddrinfo failed从源码结构看脚本对 2xx 成功响应统一显示 对其他由服务器明确返回的错误码4xx/5xx以及网络层错误统一显示 语义清晰、便于自动化巡检时快速人工判读。扩展思路虽然该脚本以“获取状态码”为最小目标但其代码骨架具备良好的扩展点超时控制urlopen支持timeout参数可避免请求长时间挂起携带请求头可通过urllib.request.Request包装 URL 并附加User-Agent、Cookie等头信息批量巡检将input()改为循环读取 URL 列表文件即可升级为网站健康检查工具中文消息映射可进一步建立“状态码 → 中文描述”的字典替代英文的response.reason。这些增强均可保留现有异常处理结构在try/except骨架内继续叠加。小结Fetch HTTP status code 是 python-mini-projects 仓库中一个短小精悍的入门级示例它用不到 30 行代码演示了urllib.request.urlopen的基本用法、HTTPError与URLError的分层异常捕获以及第三方emoji库的简单集成。对于希望快速理解 Python HTTP 请求与异常体系的开发者而言这是一个可直接运行、便于实验的参考实现。你可以按本文步骤安装依赖并运行python fetch_http_status_code.py输入任意网址亲自验证输出效果。赞分享示例工程【免费下载链接】python-mini-projectsA collection of simple python mini projects to enhance your python skills项目地址https://gitcode.com/gh_mirrors/py/python-mini-projects点击查看免费下载相关推荐python-mini-projects 网页链接抓取实战用 requests BeautifulSoup 提取页面全部链接并保存python mini projects 网页链接抓取实战用 requests BeautifulSoup 提取页面全部链接并保存 本技术指南以 pyth示例工程霞鹜文楷免费商用开源中文字体上手指南霞鹜文楷免费商用开源中文字体上手指南 做诗词、引文排版时系统自带的衬线体总差一点韵味而买来的楷体要么有授权顾虑要么冷僻字缺失。霞鹜文楷LXGW WenUI组件超快速Python标准库检查Ruff提升代码质量的实战指南超快速Python标准库检查Ruff提升代码质量的实战指南 你是否还在忍受Python代码检查工具的缓慢速度面对标准库使用不规范导致的隐性bug而束手无策开发工具Lint格式化静态分析CLI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考