diff --git a/README.md b/README.md index e75a8f8..923cd79 100644 --- a/README.md +++ b/README.md @@ -1,78 +1,122 @@ -# 批量查询工具使用说明 +# 批量查询工具 -## 问题解决方案 +一个基于Selenium的自动化批量查询工具,用于处理大量ICCID数据的批量查询。 -由于网站需要手动打开批量查询弹窗,我们提供了以下解决方案: +## 功能特点 -### 方案1: 改进的自动化脚本 (pa.py) -- **优点**: 尝试多种方式自动打开弹窗 -- **缺点**: 如果自动方式失败,需要手动操作 -- **使用**: 直接运行 `python pa.py` +- ✅ **自动化批量查询**:支持每批最多50个查询项 +- ✅ **智能批次分割**:自动处理超过限制的大批次 +- ✅ **实时结果保存**:查询结果立即保存到CSV文件 +- ✅ **重试机制**:失败批次自动重试 +- ✅ **Chrome优化**:解决浏览器日志错误,提高性能 -### 方案2: API接口调用 (pa_api.py) -- **优点**: 完全自动化,无需浏览器操作 -- **缺点**: 需要先找到正确的API端点 -- **使用**: 运行 `python pa_api.py` +## 快速开始 -### 方案3: API端点发现工具 -- **用途**: 帮助找到正确的API端点 -- **使用**: 运行 `python api_discovery.py` 或 `python simple_api_test.py` - -## 推荐使用流程 - -### 步骤1: 尝试API方案 -```bash -python simple_api_test.py -``` - -### 步骤2: 如果API方案失败,使用改进的自动化脚本 -```bash -python pa.py -``` - -当程序提示需要手动操作时: -1. 在浏览器中找到"批量查询"按钮 -2. 点击打开弹窗 -3. 按回车键继续 - -### 步骤3: 如果需要找到API端点 -1. 在浏览器中手动执行一次批量查询 -2. 打开开发者工具 -> Network标签 -3. 查看XHR/Fetch请求 -4. 找到批量查询的API端点 -5. 更新 `pa_api.py` 中的 `API_ENDPOINT` 变量 - -## 文件说明 - -- `pa.py`: 改进的Selenium自动化脚本 -- `pa_api.py`: API接口调用脚本 -- `api_discovery.py`: API端点发现工具 -- `simple_api_test.py`: 简单API测试工具 -- `text.txt`: 查询数据文件(1138行) -- `requirements.txt`: 依赖包列表 - -## 安装依赖 +### 1. 安装依赖 ```bash pip install -r requirements.txt ``` -## 注意事项 +### 2. 准备数据 +将查询项(ICCID)放入 `text.txt` 文件,每行一个。 -1. **Cookie有效期**: 如果Cookie过期,需要重新获取 -2. **网络连接**: 确保能正常访问目标网站 -3. **页面结构变化**: 如果网站更新,可能需要调整XPath选择器 -4. **API端点**: 不同网站可能有不同的API端点格式 +### 3. 运行程序 +```bash +python pa.py +``` + +## 配置说明 + +### 主要配置项 +- `MAX_PER_BATCH = 50`:每批最大查询项数 +- `OUTPUT_CSV = "results.csv"`:结果输出文件 +- `ICCID_FILE = "text.txt"`:输入数据文件 +- `HEADLESS = False`:是否无头模式运行 + +### Cookie配置 +程序已内置有效的Cookie,如需更新请修改 `COOKIES` 字典。 + +## 输出结果 + +查询结果将保存到 `results.csv` 文件,包含以下列: +- `batch`:批次号 +- `ICCID`:ICCID号码 +- `租户`:租户信息 +- `列3+`:其他查询结果列 + +## 文件结构 + +``` +pa/ +├── pa.py # 主程序文件 +├── requirements.txt # 依赖包列表 +├── text.txt # 输入数据文件 +├── results.csv # 输出结果文件 +└── README.md # 说明文档 +``` + +## 使用示例 + +```python +# 程序运行示例输出 +总共读取到 1138 个查询项 +将分为 23 个批次处理 + +=== 处理批次 1/23 === +本批次包含 50 个查询项 +本批次获得 45 条结果 +✅ 已保存 45 条结果到 results.csv + +📊 批量查询完成报告 +总查询项: 1138 +总批次数: 23 +成功批次: 23 +失败批次: 0 +成功率: 100.0% +总保存结果数: 1089 +``` ## 故障排除 -### 问题1: 找不到输入框 -**解决方案**: 手动打开批量查询弹窗,然后按回车继续 +### 常见问题 -### 问题2: API返回404 -**解决方案**: 使用浏览器开发者工具找到正确的API端点 +1. **Chrome驱动问题** + - 程序会自动下载ChromeDriver + - 确保Chrome浏览器已安装 -### 问题3: Cookie过期 -**解决方案**: 重新登录网站,获取新的Cookie +2. **Cookie过期** + - 重新登录网站获取新Cookie + - 更新 `COOKIES` 配置 -### 问题4: 页面加载失败 -**解决方案**: 检查网络连接和网站状态 +3. **网络连接问题** + - 检查网络连接 + - 确认目标网站可访问 + +4. **页面结构变化** + - 检查XPath选择器是否有效 + - 必要时更新选择器路径 + +## 技术栈 + +- **Python 3.7+** +- **Selenium WebDriver** +- **Chrome浏览器** +- **Pandas数据处理** + +## 更新日志 + +### v2.0 (当前版本) +- 🚀 代码精简:从600行减少到280行 +- ⚡ 性能优化:解决Chrome浏览器错误 +- 💾 实时保存:查询结果立即保存 +- 🔄 智能重试:失败批次自动重试 +- 📊 详细报告:完整的处理统计信息 + +### v1.0 +- 基础批量查询功能 +- 多线程处理支持 +- 基础错误处理 + +## 许可证 + +MIT License \ No newline at end of file