大众点评爬虫实战指南:从配置到数据采集的全流程解析
一、核心引擎模块:爬虫的"中央控制系统"
1.1 启动引擎(main.py):项目的"一键启动器"
场景化应用价值:当你需要快速启动不同类型的爬取任务时,这个模块就像智能遥控器,能一键切换"完整爬取/仅详情/仅评论"三种模式,无需修改任何代码。
# 核心代码片段
parser.add_argument('--normal', type=int, default=1,
help='spider as normal(search->detail->review)')
常见问题预警:如果同时设置--normal和--detail参数,系统会优先执行完整爬取流程,忽略单独的详情爬取指令。
💡 专家提示:首次使用建议先运行默认模式(python main.py),观察系统是否能正常完成搜索→详情→评论的全流程,再根据需求添加参数。
1.2 加密请求处理器(get_encryption_requests.py):反反爬的"密码本"
功能矩阵图:
| 方法名 | 应用场景 | 关键参数 | 风险等级 |
|---|---|---|---|
| get_token | 获取店铺访问令牌 | shop_url | 高(频繁调用可能触发风控) |
| get_font_msg | 破解字体加密 | 无 | 中(每日限制调用100次) |
| get_basic_hidden_info | 提取隐藏数据 | shop_id | 低 |
场景化应用价值:大众点评采用动态字体加密技术隐藏关键数据,这个模块就像专业的"密码解码器",能在不使用OCR的情况下精准还原加密信息。
常见问题预警:调用get_token方法时,如果返回"403 Forbidden",需要检查config.ini中的uuid参数是否有效。
💡 专家提示:字体加密规则每7天更新一次,建议定期运行get_font_msg()更新本地字体映射库,避免出现数据乱码。
二、数据处理模块:信息的"净化工厂"
2.1 搜索爬虫(search.py):数据采集的"先锋部队"
场景化应用价值:当你需要批量获取某类商家信息(如"上海自助餐")时,这个模块能模拟用户搜索行为,自动翻页并提取关键数据,就像配备了自动导航的"数据采集车"。
# 核心代码片段
def search(self, search_url, request_type='proxy, cookie'):
# 发起搜索请求并解析结果
常见问题预警:如果搜索结果突然减少,可能是触发了频率限制,需要检查config.ini中的requests_times参数。
2.2 数据存储组件(saver/):信息的"智能仓库"
功能矩阵图:
| 存储类型 | 适用场景 | 优势 | 局限 |
|---|---|---|---|
| CSV存储 | 小量数据(<1万条) | 无需额外软件,Excel直接打开 | 不支持复杂查询 |
| MongoDB存储 | 大量数据(>1万条) | 支持复杂查询和索引 | 需要安装MongoDB服务 |
场景化应用价值:爬取的数据需要妥善保管,这个模块提供了"文件柜"(CSV)和"数据库"(MongoDB)两种存储方案,可根据数据量灵活选择。
常见问题预警:使用MongoDB存储时,如果出现"连接超时"错误,请检查mongo_path配置是否包含正确的端口号(默认27017)。
💡 专家提示:对于餐饮点评分析类项目,建议使用MongoDB存储,方便后续进行地理位置查询(如"查找3公里内评分>4.5的火锅店")。
三、系统配置模块:爬虫的"控制面板"
3.1 核心配置文件(config.ini):系统的"控制面板"
决策树式配置指南:
是否需要代理?→ 是 → 选择代理模式(http/key)→ 填写对应参数
↓
否 → 是否使用cookie池?→ 是 → 配置cookies.txt
↓
否 → 直接填写Cookie参数
配置参数双栏对照:
| 参数名 | 新手推荐值 | 高级自定义 | 影响范围 |
|---|---|---|---|
| use_cookie_pool | False | True(需10+Cookie) | 所有请求 |
| requests_times | 1,2;3,5 | 3,3;10,10 | 爬取速度 |
| use_proxy | False | True(付费代理) | 反反爬能力 |
| save_mode | csv | mongo | 数据管理 |
场景化应用价值:这个文件集中了所有可调节参数,就像汽车的"仪表盘",通过简单修改就能改变爬虫的行为模式,无需编程基础。
常见问题预警:修改location_id时,需要使用城市代码(如上海是1,北京是2),直接填写城市名称会导致搜索失败。
💡 专家提示:配置修改后建议使用--need_pages=1参数测试(仅爬取1页数据),确认配置生效后再进行全量爬取,避免浪费代理资源。
四、实战操作指南
4.1 环境准备
- 克隆项目代码库到本地
- 安装依赖包:pip install -r requirements.txt
- 配置config.ini文件,至少填写Cookie和uuid参数
4.2 快速启动三步骤
- 基础搜索:python main.py --need_pages=2(爬取前2页搜索结果)
- 单独详情:python main.py --detail=1 --shop_id=12345(爬取指定店铺详情)
- 仅爬评论:python main.py --review=1 --shop_id=12345(仅获取评论数据)
4.3 高级功能启用
- 启用代理:修改config.ini中use_proxy=True并填写代理信息
- 切换存储:将save_mode改为mongo并配置mongo_path
- 批量爬取:设置need_pages=0爬取所有搜索结果(谨慎使用)
常见问题速查表
Q: 运行时提示"Font mapping error"怎么办? A: 执行python -c "from function.get_encryption_requests import get_font_msg; get_font_msg()"更新字体映射
Q: 搜索结果总是重复怎么办? A: 在config.ini中设置need_first=False,禁用首条结果优先模式
Q: MongoDB连接失败? A: 检查mongo_path格式是否正确(例:mongodb://localhost:27017)
Q: 爬取速度突然变慢? A: 查看requests_times配置,建议新手使用默认值"1,2;3,5"
Q: 评论数据不完整? A: 确认config.ini中use_cookie_pool是否设为True,单Cookie只能获取前5页评论
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00