# 说明 **Repository Path**: lu1126/instructions ## Basic Information - **Project Name**: 说明 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-21 - **Last Updated**: 2025-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 商家信息采集工具 ## 功能特性 ⚡ **超高效采集**: 基于URL去重,避免重复打开详情页,效率提升10倍+ 🚀 **智能跳过**: 滚动后旧数据智能跳过,不重复处理 ✅ **实时保存**: 每采集一个商家立即保存,绝不丢失数据 ✅ **双重去重**: URL去重(避免重复处理)+ 手机号去重(避免重复保存) ✅ **配置化**: 所有参数通过配置文件管理,灵活调整 ✅ **多格式保存**: 支持TXT和JSON两种格式保存 ✅ **无限滚动**: 自动检测页面结束,无需预知总页数 ✅ **断点续传**: 支持中断后继续采集 ✅ **完善日志**: 详细的采集日志记录 ✅ **异常处理**: 完善的错误处理和数据保护 ## 文件说明 ### 核心文件 - `main_ultra_efficient.py` - ⚡**主程序**,超高效采集脚本 - `main_ultra_efficient.exe` - 🚀**可执行文件**,无需Python环境直接运行 - `config.json` - ⚙️**配置文件**,所有参数设置 - `README.md` - �**使用说明** ### 输出文件 - `business_data.txt` - �**TXT格式数据**,一行一组商家信息 - `business_data.json` - 📊**JSON格式数据**,结构化商家数据 - `logs/scraper.log` - 📝**日志文件**,详细运行记录 ## 配置文件说明 (config.json) ```json { "target_url": "目标采集URL", "output_settings": { "txt_file": "business_data.txt", // TXT输出文件名 "json_file": "business_data.json", // JSON输出文件名 "save_to_txt": true, // 是否保存TXT格式 "save_to_json": true // 是否保存JSON格式 }, "scraping_settings": { "max_no_new_pages": 3, // 连续多少页没新数据就停止 "page_load_delay": 2, // 页面加载等待时间(秒) "scroll_delay": 3, // 滚动后等待时间(秒) "scroll_distance": 1220 // 每次滚动距离 }, "browser_settings": { "start_maximized": true, // 是否最大化窗口 "headless": false // 是否无头模式 } } ``` ## 输出格式 ### TXT格式 (一行一组) ``` 商家名称----地址----手机号----网站 Hookah Market----Moscow, Arkhitektora Schuseva Street, 2к2----+7 (969) 134-00-04----hookahmarket.moscow Dym----Moscow, Tverskaya Street, 15----+7 (495) 123-45-67----无 ``` ### JSON格式 ```json { "total_count": 156, "last_updated": "2025-08-20 22:30:15", "businesses": [ { "title": "Hookah Market", "address": "Moscow, Arkhitektora Schuseva Street, 2к2", "contacts": "+7 (969) 134-00-04", "website": "hookahmarket.moscow", "timestamp": "2025-08-20 22:15:30" } ] } ``` ## 使用方法 ### 1. 修改配置文件 编辑 `config.json`,设置目标URL和其他参数 ### 2. 运行程序 #### 方式一:直接运行可执行文件(推荐) ```bash # 双击运行或命令行运行 main_ultra_efficient.exe ``` #### 方式二:Python脚本运行 ```bash # 需要Python环境 python main_ultra_efficient.py ``` ### 3. 监控日志 程序会在控制台和 `logs/scraper.log` 文件中输出详细日志 ### 4. 停止程序 - 自动停止:连续N页没有新数据时自动停止 - 手动停止:按 `Ctrl+C` 手动停止,数据会自动保存 ## 程序特点 ### ⚡ 超高效采集机制 - **基于URL智能去重**:记录已处理的商家URL,避免重复打开详情页 - **双重去重策略**:URL去重(避免重复处理)+ 手机号去重(避免重复保存) - **大幅提升效率**:滚动后旧数据智能跳过,采集速度提升10倍+ - **新标签页处理**:主页面永不离开列表页,每个商家在新标签页中处理 ### 🔥 实时保存机制 - **每采集一个商家立即保存**:不等到程序结束,确保数据安全 - **TXT文件实时追加**:每个新商家立即写入TXT文件 - **JSON文件实时更新**:每个新商家立即更新JSON文件 - **绝不丢失数据**:即使程序崩溃、断电、网络中断,已采集数据都已保存 ### 🛡️ 智能停止机制 - 连续N页(可配置)没有新商家自动停止 - 支持手动中断(Ctrl+C) - 异常处理和数据保护 ### 📊 数据管理 - **断点续传**:支持中断后继续采集,自动加载已有数据 - **多格式输出**:同时生成TXT和JSON两种格式 - **详细日志**:完整的采集过程记录 ## 日志级别 - **INFO**: 重要进度信息 - **DEBUG**: 详细调试信息 - **ERROR**: 错误信息 ## 常见问题 ### Q: 如何修改采集的网站? A: 修改 `config.json` 中的 `target_url` 字段 ### Q: 如何调整采集速度? A: 修改 `config.json` 中的 `page_load_delay` 和 `scroll_delay` 参数 ### Q: 程序意外停止怎么办? A: 程序会自动保存已采集的数据,重新运行即可继续采集(会自动去重) ### Q: 如何只保存TXT格式? **如果需要去重手机号 要设置true** A: 在 `config.json` 中设置 `"save_to_json": false` ### Q: 采集速度太慢怎么办? A: 可以适当减少 `page_load_delay` 和 `scroll_delay`,但不建议设置太小以免被反爬 ### Q: 如何运行程序? A: **两种方式**: - **推荐**:直接双击 `main_ultra_efficient.exe` 运行 - **备选**:命令行运行 `python main_ultra_efficient.py`(需要Python环境) ### Q: 效率提升有多明显? A: **效率对比**: - **普通版本**:每页20个商家,需要点击20次,耗时约2分钟 - **超高效版本**:每页20个商家,基于URL预判,只点击新商家(如2个),耗时约15秒 - **提升幅度**:在有大量重复数据的情况下,效率提升10倍+ ### Q: URL去重的优势是什么? A: **URL去重的优势**: - ⚡ **预判性**:不需要打开详情页就能判断是否重复 - 🎯 **唯一性**:每个商家的URL绝对唯一,比手机号更可靠 - 🚀 **高效性**:避免大量不必要的详情页访问 - 💾 **持久性**:URL不会变化,手机号可能更新 ## 技术特点 - **配置管理**: JSON配置文件,灵活调整参数 - **日志系统**: 按天分割的日志文件,详细记录运行过程 - **数据去重**: 基于URL的智能去重 + 手机号备用去重 - **异常处理**: 完善的错误处理和数据保护机制 - **实时保存**: 每个商家采集后立即保存,绝不丢失数据 --- **开发说明**: 本工具专为Yandex Maps商家信息采集优化,采用超高效URL去重策略,大幅提升采集效率。