Spaces:
Sleeping
Sleeping
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文档:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
错误处理
- 自动重试机制:当查询失败时,会自动重试最多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"
注意事项
- 服务依赖于外部的验证码识别模型文件:
yolov8.onnx和siamese.onnx - 确保这些模型文件在项目根目录中
- 首次运行可能需要一些时间来加载模型
- 建议在生产环境中使用更强的错误处理和日志记录
项目结构
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