Skip to content

JCWD123/BFS_tianyancha

Repository files navigation

天眼查高级搜索自动化脚本

这是一个基于Selenium的天眼查高级搜索自动化脚本,专门用于浙江省小微企业的数据导出任务。

🚀 主要功能

  • 多次导出支持:自动循环执行,最多支持10次数据导出
  • 智能类别选择:三阶段选择策略,从单一主类别到主类别组合再到子类别
  • 制造业状态管理:解决制造业全选状态影响其他类别选择的问题
  • 重复检测:自动跳过已经导出过的组合,避免重复操作
  • 详细日志记录:记录每次导出的详细信息和统计数据

📋 功能特性

选中状态验证系统(新增)

  • 智能状态检查:实时检查每个类别的选中状态(蓝色=已选中,白色=未选中)
  • 唯一性验证:确保只有目标类别被选中,其他类别都未选中
  • 自动修正机制:如果发现状态异常,自动尝试修正选择状态
  • 详细日志输出:显示每个类别的状态检查和修正过程

三阶段测试策略

  1. 第一阶段:尝试单一主类别

    • 测试12个制造业主类别
    • 寻找数据量在4000-5000范围内的类别
    • 验证选择状态的唯一性
  2. 第二阶段:尝试主类别组合

    • 对于数据量<2000的类别进行两两组合
    • 寻找组合后符合4000-5000范围的结果
    • 验证多选状态的准确性
  3. 第三阶段:尝试子类别

    • 在主类别下选择具体子类别
    • 支持单个子类别和子类别组合
    • 验证子类别选择的精确性

制造业状态管理

  • 自动处理制造业的全选/取消全选状态
  • 确保每次选择前制造业都处于正确的取消全选状态
  • 避免制造业全选影响其他类别的数据统计

🛠️ 环境要求

# Python 3.6+
# 安装依赖
pip install selenium

# Chrome浏览器和ChromeDriver
# 确保ChromeDriver在PATH中或与脚本同目录

📝 使用方法

1. 基本使用

python tianyancha_final_script.py

2. 脚本执行流程

  1. 启动Chrome浏览器
  2. 导航到天眼查高级搜索页面
  3. 等待用户登录(脚本会暂停,提示用户在浏览器中完成登录)
  4. 用户登录完成后按回车键继续
  5. 自动设置筛选条件(浙江省小微企业第十七次过滤)
  6. 执行三阶段类别选择测试
  7. 找到符合条件的结果后执行导出流程
  8. 自动回退到行业选择界面继续下一轮
  9. 重复直到达到10次导出或无更多符合条件的组合

3. 参数配置

在脚本最后的调用部分可以修改参数:

result = hierarchical_test_selection_multi_export(
    max_exports=10,           # 最大导出次数
    max_attempts_phase1=12,   # 第一阶段最大尝试次数
    max_attempts_phase2=None, # 第二阶段最大尝试次数(None=尝试所有)
    max_attempts_phase3=10,   # 第三阶段最大尝试次数  
    max_total_attempts=100    # 总尝试次数上限
)

📊 输出说明

实时日志

脚本运行过程中会显示详细的操作日志:

  • 各阶段的尝试信息
  • 选择的类别和数据量
  • 导出成功/失败状态
  • 错误处理信息

最终统计

脚本结束后会显示:

  • 总尝试次数和成功导出次数
  • 导出成功记录(时间戳、类别信息)
  • 各阶段测试结果统计

⚠️ 注意事项

1. 网络环境

  • 确保网络连接稳定
  • 天眼查可能有访问频率限制,脚本已内置适当的延迟

2. 浏览器要求

  • 需要安装Chrome浏览器
  • ChromeDriver版本需要与Chrome浏览器版本匹配

3. 账号要求

  • 需要有天眼查账号并且已登录
  • 确保账号有数据导出权限
  • 每天有10次导出额度限制

4. 页面元素

  • 脚本基于特定的页面元素定位器
  • 如果天眼查更新页面结构,可能需要更新定位器

🔧 故障排除

常见问题

  1. "no such element"错误

    • 检查页面是否完全加载
    • 确认天眼查页面结构是否有变化
    • 增加等待时间
  2. "短时间内访问过于频繁"

    • 等待一段时间后重试
    • 检查网络IP是否被限制
  3. 浏览器启动失败

    • 检查ChromeDriver是否正确安装
    • 确认Chrome浏览器版本与驱动版本匹配
  4. 选中状态验证失败(新增)

    • 检查rect元素的fill属性是否为预期值(#0084FF或white)
    • 确认类别元素的DOM结构是否发生变化
    • 尝试刷新页面重新选择
  5. 状态修正失败(新增)

    • 检查网络延迟,增加等待时间
    • 确认类别定位器是否准确
    • 手动验证页面上的选择框状态

调试模式

可以在代码中设置更长的等待时间来调试:

time.sleep(5)  # 增加等待时间

📂 文件结构

.
├── tianyancha_final_script.py  # 主脚本文件
├── README.md                   # 说明文档
└── requirements.txt            # 依赖文件(可选)

🔄 更新历史

  • v1.0 - 基础自动化功能
  • v2.0 - 修正制造业全选状态问题
  • v3.0 - 支持多次导出和智能重试
  • v4.0 - 完善错误处理和日志记录
  • v5.0 - 新增选中状态验证功能(最新)
    • 添加智能状态检查系统
    • 实现选择唯一性验证
    • 提供自动修正机制
    • 增强选择准确性和可靠性

📞 技术支持

如遇到问题,请检查:

  1. 脚本输出的错误信息
  2. 天眼查网站是否正常访问
  3. Chrome和ChromeDriver版本是否匹配
  4. 网络连接是否稳定

免责声明:本脚本仅用于学习和研究目的,使用时请遵守天眼查的使用条款和robots.txt协议。 # BFS_tianyancha

About

这是一个天眼查数据导出脚本

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors