5900e59ae1caa737060bb468eac8f25095019d61
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
运行流程
- 读取数据:从
text.txt读取ICCID列表 - 批次分割:按50个一组分割数据
- 自动登录:使用内置Cookie自动登录
- 批量查询:逐批次执行查询
- 实时保存:查询结果立即保存到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来改进这个工具!
注意:本工具仅用于合法的数据查询目的,请遵守相关网站的使用条款。
Description
Languages
Python
100%