ICP-spider / README_API.md
sanbo110's picture
update sth at 2025-12-30 15:37:47
319b754

ICP备案查询API

这是一个基于FastAPI的ICP备案信息查询服务,可以通过域名查询相关的ICP备案信息。

功能特性

  • 🚀 基于FastAPI框架,性能优异
  • 🔄 自动重试机制,最多重试5次
  • 🛡️ 自动处理验证码识别
  • 📋 RESTful API接口
  • 📖 自动生成API文档

安装依赖

pip install -r requirements.txt

启动服务

方法1:使用Docker (推荐)

# 构建并启动
docker-compose up -d --build

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

方法2:本地开发

# 安装依赖
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

示例请求

curl "http://localhost:8000/query?domain=scgzyun.com"

示例响应

{
  "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

示例请求

curl "http://localhost:8000/health"

示例响应

{
  "status": "healthy",
  "timestamp": 1704362400
}

API文档

启动服务后,可以访问以下地址查看自动生成的API文档:

错误处理

  • 自动重试机制:当查询失败时,会自动重试最多5次
  • 详细错误信息:返回具体的错误原因
  • HTTP状态码:标准的HTTP状态码响应

测试

本地测试

python test_api.py

Docker测试

# 在容器中运行测试
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.onnxsiamese.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部署

构建和运行

# 构建镜像
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

生产环境部署

# 使用docker-compose部署
docker-compose -f docker-compose.yml up -d

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down