# inspectionCapture **Repository Path**: zhougewudi/inspection-capture ## Basic Information - **Project Name**: inspectionCapture - **Description**: 一个功能强大的企业信息智能采集系统,支持递归抓取企业关系图谱数据 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-08-07 - **Last Updated**: 2026-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Inspection Capture
[![License](https://img.shields.io/github/license/pachong-lab/inspection-capture)](LICENSE) [![Java Version](https://img.shields.io/badge/Java-8%2B-blue)]() [![Selenium](https://img.shields.io/badge/Selenium-3.141.59-orange)]() [![Stars](https://img.shields.io/github/stars/pachong-lab/inspection-capture?style=social)]() [![Forks](https://img.shields.io/github/forks/pachong-lab/inspection-capture?style=social)]()
> 🔍 一个功能强大的企业信息智能采集系统,支持递归抓取企业关系图谱数据 ## 📖 项目简介 Inspection Capture 是一款基于 Java 开发的企业信息采集系统,采用 Selenium 浏览器自动化技术,能够从企业信息查询网站(如天眼查)智能采集企业相关数据,包括股东信息、对外投资、主要人员、企业关系图谱等。 系统支持多层级递归抓取,配备完善的缓存机制和数据导出功能,适用于企业尽职调查、市场研究、商业分析等场景。 ## ✨ 功能特性 ### 🔹 核心功能 | 功能 | 描述 | |------|------| | **企业信息采集** | 自动抓取企业名称、统一信用代码、经营状态等基本信息 | | **股东信息抓取** | 采集股东名单、持股比例、股东类型等详细信息 | | **对外投资查询** | 抓取企业对外投资情况及投资比例 | | **主要人员数据** | 采集董事、监事、高级管理人员等关键人员信息 | | **递归关系抓取** | 支持多层级递归爬取,构建完整企业关系图谱 | | **验证码自动识别** | 集成 OCR 识别技术,自动处理登录验证码 | ### 🔹 数据处理 - **多数据源支持**:支持 MySQL、SQLite 等多种数据库 - **智能缓存机制**:页面数据本地缓存,避免重复请求 - **Excel 导出**:支持将采集数据导出为 Excel 格式 - **自动分页处理**:自动处理分页数据,确保数据完整性 ### 🔹 系统特性 - 配置文件驱动,灵活定制采集参数 - 随机延时机制,模拟真实用户行为 - 完善的日志记录,便于问题排查 - 支持无头模式运行,降低资源消耗 ## 🛠 技术栈 ``` ┌─────────────────────────────────────────────────────────┐ │ 技术架构 │ ├─────────────────────────────────────────────────────────┤ │ 🔹 核心语言 │ Java 8+ │ │ 🔹 Web 自动化 │ Selenium 3.141.59 │ │ 🔹 HTML 解析 │ Jsoup │ │ 🔹 数据库 │ SQLite / MySQL │ │ 🔹 数据导出 │ Apache POI │ │ 🔹 OCR 识别 │ Tesseract / DdddOCR │ │ 🔹 日志框架 │ Log4j2 │ │ 🔹 构建工具 │ Maven │ └─────────────────────────────────────────────────────────┘ ``` ## 🚀 快速开始 ### 环境要求 - JDK 8 或更高版本 - Maven 3.6+ - Google Chrome 浏览器 - ChromeDriver(版本需匹配 Chrome 浏览器 需自行对应版本) ### 克隆项目 ```bash git clone https://github.com/pachong-lab/inspection-capture.git cd inspection-capture ``` ### 构建项目 ```bash mvn clean package ``` ### 配置说明 编辑 `src/main/resources/config.properties` 文件: ```properties # 起始页面 URL url=https://www.tianyancha.com/company/3156711816 # ChromeDriver 路径 driverUrl=C:\\Program Files\\Google\\Chrome\\Application\\chromedriver.exe # 数据库连接地址 tabDb=jdbc:sqlite:./inspectionCapture.db # 数据导出路径 fileUrl=C:\\Users\\Downloads\\company_data.xls # 登录等待时间(毫秒) logTime=30000 # 数据保存间隔 count=5000 # 递归抓取层级 query=3 # 是否清理历史数据(1=清理,0=保留) isDel=0 ``` ### 运行程序 ```bash # 运行企业信息采集 mvn exec:java -Dexec.mainClass="com.pa.InspectionCaptureMain" # 或运行打包后的 JAR java -jar target/inspectionCapture-1.0-SNAPSHOT.jar ``` ## 📁 项目结构 ``` inspectionCapture/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/pa/ │ │ │ ├── InspectionCaptureMain.java # 主程序入口 │ │ │ ├── CaptchaDownloader.java # 验证码下载器 │ │ │ ├── WordDocumentConverter.java # Word文档转换 │ │ │ ├── db/ │ │ │ │ └── InspectionCaptureTabDb.java # 数据库操作 │ │ │ ├── e/ │ │ │ │ └── Company.java # 企业实体类 │ │ │ └── p/ │ │ │ ├── DdddOcrUtil.java # OCR识别工具 │ │ │ ├── DoctorReviewGenerator.java # 评论生成器 │ │ │ └── GenerateChineseName.java # 姓名生成器 │ │ └── resources/ │ │ ├── config.properties # 主配置文件 │ │ ├── config2.properties # 备用配置 │ │ └── log4j.properties # 日志配置 │ └── test/ # 测试代码 ├── yangg/ # 浏览器及依赖 ├── pom.xml # Maven 配置 └── README.md # 项目文档 ``` ## 📊 数据模型 采集的企业数据包含以下字段: | 字段名 | 说明 | |--------|------| | `entityName` | 企业/人员名称 | | `entityType` | 实体类型 | | `entityUniscCode` | 统一信用代码 | | `superEntityName` | 关联上级企业/人员名称 | | `superEntityType` | 关联类型(法人/股东/高管等) | | `superEntityUniscCode` | 上级企业统一信用代码 | | `isShareHolding` | 是否持股 | | `holdingPercent` | 持股比例 | | `revoke` | 企业状态(正常/吊销/注销) | | `tab` | 抓取层级 | ## ⚠️ 使用声明 > **本项目仅供学习研究使用,请勿用于任何商业目的。** > > 使用本项目时,请确保: > 1. 遵守目标网站的 robots.txt 协议 > 2. 遵守相关法律法规 > 3. 合理控制请求频率,避免对目标网站造成负担 > 4. 获取必要的授权和许可 ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📝 License 本项目采用 MIT License 开协议 - 详见 [LICENSE](LICENSE) 文件 ---
**如果这个项目对你有帮助,欢迎 Star ⭐ 支持!**