大众点评爬虫实战指南:从配置到数据采集的全流程解析

大众点评爬虫实战指南:从配置到数据采集的全流程解析

【免费下载链接】dianping_spider 大众点评爬虫(全站可爬,解决动态字体加密,非OCR)。持续更新 【免费下载链接】dianping_spider 项目地址: https://gitcode.com/gh_mirrors/di/dianping_spider

一、核心引擎模块:爬虫的"中央控制系统"

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_poolFalseTrue(需10+Cookie)所有请求
requests_times1,2;3,53,3;10,10爬取速度
use_proxyFalseTrue(付费代理)反反爬能力
save_modecsvmongo数据管理

场景化应用价值:这个文件集中了所有可调节参数,就像汽车的"仪表盘",通过简单修改就能改变爬虫的行为模式,无需编程基础。

常见问题预警:修改location_id时,需要使用城市代码(如上海是1,北京是2),直接填写城市名称会导致搜索失败。

💡 专家提示:配置修改后建议使用--need_pages=1参数测试(仅爬取1页数据),确认配置生效后再进行全量爬取,避免浪费代理资源。

四、实战操作指南

4.1 环境准备

  1. 克隆项目代码库到本地
  2. 安装依赖包:pip install -r requirements.txt
  3. 配置config.ini文件,至少填写Cookie和uuid参数

4.2 快速启动三步骤

  1. 基础搜索:python main.py --need_pages=2(爬取前2页搜索结果)
  2. 单独详情:python main.py --detail=1 --shop_id=12345(爬取指定店铺详情)
  3. 仅爬评论:python main.py --review=1 --shop_id=12345(仅获取评论数据)

4.3 高级功能启用

  1. 启用代理:修改config.ini中use_proxy=True并填写代理信息
  2. 切换存储:将save_mode改为mongo并配置mongo_path
  3. 批量爬取:设置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页评论

【免费下载链接】dianping_spider 大众点评爬虫(全站可爬,解决动态字体加密,非OCR)。持续更新 【免费下载链接】dianping_spider 项目地址: https://gitcode.com/gh_mirrors/di/dianping_spider

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值