Spaces:
Sleeping
Sleeping
| # ICP备案查询API | |
| 这是一个基于FastAPI的ICP备案信息查询服务,可以通过域名查询相关的ICP备案信息。 | |
| ## 功能特性 | |
| - 🚀 基于FastAPI框架,性能优异 | |
| - 🔄 自动重试机制,最多重试5次 | |
| - 🛡️ 自动处理验证码识别 | |
| - 📋 RESTful API接口 | |
| - 📖 自动生成API文档 | |
| ## 安装依赖 | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| ## 启动服务 | |
| ### 方法1:使用Docker (推荐) | |
| ```bash | |
| # 构建并启动 | |
| docker-compose up -d --build | |
| # 查看日志 | |
| docker-compose logs -f | |
| # 停止服务 | |
| docker-compose down | |
| ``` | |
| ### 方法2:本地开发 | |
| ```bash | |
| # 安装依赖 | |
| pip install -r requirements.txt | |
| # 启动服务 | |
| python -m uvicorn app:app --host 0.0.0.0 --port 8000 --reload | |
| ``` | |
| ## API接口 | |
| ### 查询域名ICP备案信息 | |
| **GET** `/query?domain={domain}` | |
| #### 参数 | |
| - `domain` (必需): 要查询的域名,例如 `scgzyun.com` | |
| #### 示例请求 | |
| ```bash | |
| curl "http://localhost:8000/query?domain=scgzyun.com" | |
| ``` | |
| #### 示例响应 | |
| ```json | |
| { | |
| "code": 200, | |
| "msg": "操作成功", | |
| "params": { | |
| "endRow": 0, | |
| "firstPage": 1, | |
| "hasNextPage": false, | |
| "hasPreviousPage": false, | |
| "isFirstPage": true, | |
| "isLastPage": true, | |
| "lastPage": 1, | |
| "list": [ | |
| { | |
| "contentTypeName": "", | |
| "domain": "scgzyun.com", | |
| "domainId": 990004509801, | |
| "leaderName": "", | |
| "limitAccess": "否", | |
| "mainId": 110001964865, | |
| "mainLicence": "蜀ICP备19011193号", | |
| "natureName": "企业", | |
| "serviceId": 990005092743, | |
| "serviceLicence": "蜀ICP备19011193号-6", | |
| "unitName": "成都七淘网络科技有限公司", | |
| "updateRecordTime": "2024-03-01 09:25:43" | |
| } | |
| ], | |
| "navigatePages": 8, | |
| "navigatepageNums": [1], | |
| "nextPage": 1, | |
| "pageNum": 1, | |
| "pageSize": 10, | |
| "pages": 1, | |
| "prePage": 1, | |
| "size": 1, | |
| "startRow": 0, | |
| "total": 1 | |
| }, | |
| "success": true | |
| } | |
| ``` | |
| ### 健康检查 | |
| **GET** `/health` | |
| #### 示例请求 | |
| ```bash | |
| curl "http://localhost:8000/health" | |
| ``` | |
| #### 示例响应 | |
| ```json | |
| { | |
| "status": "healthy", | |
| "timestamp": 1704362400 | |
| } | |
| ``` | |
| ## API文档 | |
| 启动服务后,可以访问以下地址查看自动生成的API文档: | |
| - Swagger UI: http://localhost:8000/docs | |
| - ReDoc: http://localhost:8000/redoc | |
| ## 错误处理 | |
| - 自动重试机制:当查询失败时,会自动重试最多5次 | |
| - 详细错误信息:返回具体的错误原因 | |
| - HTTP状态码:标准的HTTP状态码响应 | |
| ## 测试 | |
| ### 本地测试 | |
| ```bash | |
| python test_api.py | |
| ``` | |
| ### Docker测试 | |
| ```bash | |
| # 在容器中运行测试 | |
| docker-compose exec icp-spider-api python test_api.py | |
| # 或者直接测试API接口 | |
| curl "http://localhost:8000/health" | |
| curl "http://localhost:8000/query?domain=scgzyun.com" | |
| ``` | |
| ## 注意事项 | |
| 1. 服务依赖于外部的验证码识别模型文件:`yolov8.onnx` 和 `siamese.onnx` | |
| 2. 确保这些模型文件在项目根目录中 | |
| 3. 首次运行可能需要一些时间来加载模型 | |
| 4. 建议在生产环境中使用更强的错误处理和日志记录 | |
| ## 项目结构 | |
| ``` | |
| ICP-spider/ | |
| ├── app.py # FastAPI应用主文件 | |
| ├── test_api.py # 测试脚本 | |
| ├── main.py # 原始脚本 | |
| ├── crack.py # 验证码识别模块 | |
| ├── requirements.txt # 依赖列表 | |
| ├── Dockerfile # Docker镜像构建文件 | |
| ├── docker-compose.yml # Docker编排文件 | |
| ├── .dockerignore # Docker忽略文件 | |
| ├── yolov8.onnx # YOLO模型文件 | |
| ├── siamese.onnx # Siamese模型文件 | |
| └── README_API.md # 项目说明 | |
| ``` | |
| ## Docker部署 | |
| ### 构建和运行 | |
| ```bash | |
| # 构建镜像 | |
| docker build -t icp-spider-api . | |
| # 运行容器 | |
| docker run -d -p 8000:8000 --name icp-spider-api icp-spider-api | |
| # 或使用docker-compose | |
| docker-compose up -d --build | |
| ``` | |
| ### 生产环境部署 | |
| ```bash | |
| # 使用docker-compose部署 | |
| docker-compose -f docker-compose.yml up -d | |
| # 查看日志 | |
| docker-compose logs -f | |
| # 停止服务 | |
| docker-compose down | |
| ``` | |