Files
pa/README.md

6.4 KiB
Raw Blame History

ICCID批量查询工具

一个专为SimbaLink平台设计的ICCID批量查询工具基于Selenium自动化技术支持大量数据的批量处理和实时结果保存。

🚀 核心特性

智能批量处理

  • 自动批次分割超过50个查询项时自动分割为多个子批次
  • 批次大小控制每批最多50个查询项符合平台限制
  • 智能重试机制失败批次自动重试2次提高成功率

💾 实时数据保存

  • 即时保存每批次查询完成后立即保存结果到CSV文件
  • 追加模式:支持多次运行,新结果追加到现有文件
  • 结构化输出包含批次号、ICCID、租户信息等完整数据

🔧 技术优化

  • Chrome浏览器优化解决LatencyInfo错误减少日志输出
  • 多编码支持自动检测文件编码UTF-8、GBK、UTF-8-SIG、CP1252
  • XPath容错:多种表格结构支持,提高页面兼容性
  • 输入框清理:彻底清空输入框,避免数据残留

📋 系统要求

  • Python 3.7+
  • Chrome浏览器程序会自动下载ChromeDriver
  • Windows/Linux/macOS

🛠️ 安装与配置

1. 安装依赖

pip install -r requirements.txt

2. 准备数据文件

将ICCID号码放入 text.txt 文件,每行一个:

89882390001035539593
89882390001035538041
89882390001035536771
...

3. 配置参数(可选)

pa.py 文件中修改以下配置:

MAX_PER_BATCH = 50        # 每批最大查询项数
OUTPUT_CSV = "results.csv" # 输出文件名
ICCID_FILE = "text.txt"    # 输入文件名
HEADLESS = False           # 是否无头模式
BATCH_RETRY_COUNT = 2      # 重试次数

🚀 使用方法

基本使用

python pa.py

运行流程

  1. 读取数据:从 text.txt 读取ICCID列表
  2. 批次分割按50个一组分割数据
  3. 自动登录使用内置Cookie自动登录
  4. 批量查询:逐批次执行查询
  5. 实时保存查询结果立即保存到CSV

输出示例

使用编码 utf-8 成功读取 1138 个查询项
总共读取到 1138 个查询项
将分为 23 个批次处理
已通过Cookie自动登录开始批量查询...

=== 处理批次 1/23 ===
本批次包含 50 个查询项
本批次获得 45 条结果
✅ 已保存 45 条结果到 results.csv

=== 处理批次 2/23 ===
本批次包含 50 个查询项
本批次获得 48 条结果
✅ 已保存 48 条结果到 results.csv
...

📊 输出结果

CSV文件结构

列名 说明 示例
batch 批次号 1, 2, 3...
ICCID ICCID号码 89882390001035539593
租户 租户信息 租户名称
列3+ 其他查询结果 状态、类型等

统计报告

📊 批量查询完成报告
==================================================
总查询项: 1138
总批次数: 23
成功批次: 23
失败批次: 0
成功率: 100.0%
总保存结果数: 1089
==================================================
✅ 所有结果已实时保存到 results.csv

🔧 技术实现

核心技术栈

  • Selenium WebDriver:浏览器自动化
  • ChromeDriverManager自动管理Chrome驱动
  • Pandas数据处理和CSV操作
  • WebDriverWait:智能等待机制

关键功能实现

1. 智能批次分割

if len(batch) > MAX_PER_BATCH:
    sub_batches = [batch[i:i+MAX_PER_BATCH] for i in range(0, len(batch), MAX_PER_BATCH)]
    # 处理每个子批次...

2. 实时结果保存

if results:
    batch_results = [{"batch": batch_index, "cells": row_cells} for row_cells in results]
    saved_count = save_results_to_csv(batch_results, OUTPUT_CSV)
    print(f"✅ 已保存 {saved_count} 条结果到 {OUTPUT_CSV}")

3. Chrome浏览器优化

chrome_opts.add_argument("--disable-logging")
chrome_opts.add_argument("--disable-gpu-logging")
chrome_opts.add_argument("--log-level=3")
chrome_opts.add_argument("--silent")

📁 项目结构

pa/
├── pa.py              # 主程序文件289行精简版
├── requirements.txt   # 依赖包列表
├── text.txt          # 输入数据文件1138行ICCID
├── results.csv       # 输出结果文件
├── response_parser.py # 响应解析工具
└── README.md         # 项目说明文档

⚠️ 注意事项

Cookie管理

  • 程序内置有效Cookie自动处理登录
  • Cookie过期时需要重新获取并更新配置

网络要求

  • 需要稳定的网络连接
  • 确保能正常访问 https://prod-eu-cmp.simbalinkglobal.com

页面兼容性

  • 程序支持多种表格结构
  • 如果页面更新可能需要调整XPath选择器

🐛 故障排除

常见问题及解决方案

1. Chrome驱动问题

问题ChromeDriver版本不匹配
解决程序会自动下载匹配的ChromeDriver

2. Cookie过期

问题:登录失败,提示认证错误
解决重新登录网站获取新Cookie并更新配置

3. 输入框清理失败

问题:输入框残留数据导致查询失败
解决:程序已优化清理逻辑,支持多种清理方式

4. 网络连接问题

问题:页面加载超时
解决:检查网络连接,确认目标网站可访问

📈 性能优化

已实现的优化

  • 代码精简从600行减少到289行减少52%
  • 浏览器优化:禁用日志、图片加载等非必要功能
  • 智能等待:减少不必要的等待时间
  • 内存优化:实时保存,避免大量数据驻留内存

性能指标

  • 处理速度每批次约1-2秒
  • 成功率>95%(在正常网络条件下)
  • 内存占用<100MB
  • 支持数据量:无限制(分批处理)

🔄 版本历史

v2.0 (当前版本)

  • 🚀 代码精简从600行减少到289行
  • 性能优化解决Chrome浏览器LatencyInfo错误
  • 💾 实时保存:查询结果立即保存,避免数据丢失
  • 🔄 智能重试:失败批次自动重试机制
  • 📊 详细统计:完整的处理报告和成功率统计

v1.0

  • 基础批量查询功能
  • 多线程处理支持
  • 基础错误处理

📄 许可证

MIT License - 可自由使用、修改和分发

🤝 贡献

欢迎提交Issue和Pull Request来改进这个工具


注意:本工具仅用于合法的数据查询目的,请遵守相关网站的使用条款。