大众点评爬虫数据规约详解:Sniper 项目搜索与评论字段的完整对齐方案
网页爬虫【免费下载链接】dianping_spider大众点评爬虫全站可爬解决动态字体加密非OCR。持续更新项目地址https://gitcode.com/gh_mirrors/di/dianping_spider点击查看免费下载大众点评反爬机制复杂同一店铺信息可能来自网页解析、加密接口、cookie 池与 ip 代理等多种爬取通道不同通道能见到的字段并不一致。本文基于 dianping_spider 仓库的 docs/data.md 文档完整梳理该项目在搜索search与评论review两条链路上的数据规约字段对齐规则并结合 function/search.py、function/review.py 等源码验证每个字段的真实解析来源帮助你理解抓取结果的字段含义、值域形态以及哪些字段只有接口才有、哪些只有网页才有为后续数据清洗与入库提供可直接对照的参考。为什么需要数据规约多爬取方式下的字段对齐问题大众点评对搜索页、详情页和评论页都施加了严格的动态字体加密与反爬限制本项目通过 utils/get_font_map.py 获取字体映射并替换加密字符串非 OCR 方式破解。为了对抗封禁项目同时支持网页 HTML 解析携带 cookie 的登录态请求加密匿名接口通过uuid、tcv参数访问未登录态字段存在隐藏详见 docs/json.mdcookie 池与 ip 代理等防 ban 手段。由于采用了多种爬取方式有些数据对于其它爬取方式并不可见因此项目在输出层采用最大集原则做数据规约凡是任何一种爬取方式能拿到的字段都统一放进最终字典中拿不到的字段以-占位。同时因为数据对齐的原因有一些字段名字可能会轻微变化使用方在对接下游任务时应以本规约为准。字段标记体系-、*、#的含义数据规约文档中每个字段后都带有一个标记符号这是理解整套数据的关键标记含义说明-所有爬取方式均可见网页解析与加密接口都返回该字段*接口特有只有加密接口匿名接口能拿到#网页特有只有网页解析能拿到该标记直接对应 docs/json.md 中加密接口 网页解析融合的设计接口在未登录状态下会隐藏部分字段如商家电话末两位而网页在登录态下字段更全但反过来接口能拿到一些网页拿不到的数据如浏览量。两者取并集就构成了下面的最大集规约。search搜索页数据规约搜索页爬取结果的整体结构与字段含义如下数据结构定义于 function/search.py 的one_step_search_res字典{ 店铺id: -, # 所有方式都有 店铺名: -, # 所有方式都有 评论总数: -, # 所有方式都有 人均价格: -, # 所有方式都有 标签1: -, # 所有方式都有 标签2: -, # 所有方式都有 店铺地址: -, # 所有方式都有 详情链接: -, # 所有方式都有 图片链接: -, # 所有方式都有 店铺均分: -, # 所有方式都有 推荐菜: *, # 接口特有 店铺总分: -, # 所有方式都有 店铺电话: -, # 所有方式都有 其他信息: #, # 网页特有 优惠券信息: *, # 接口特有 }search 各字段的源码解析依据在 function/search.py 中搜索列表通过BeautifulSoup解析.shop-list下的每一个li每个字段都有独立的 try/except 兜底逻辑——解析失败统一回退为-这正是规约中占位符的来源店铺id取.txt .tit a的data-shopid属性店铺名取.txt .tit a的文本并strip()评论总数取.comment .review-num文本去掉换行人均价格取.comment .mean-price b文本解析失败时默认0标签1/标签2取.tag-addr .tag列表的前两项文本中的换行替换为空格店铺地址取.tag-addr .addr文本详情链接取.txt .tit a的href图片链接取.pic a img的src店铺均分取.comment-list的文本页面上的详细评分如口味 环境 服务分项推荐菜取.recommend文本即页面上的推荐菜区域店铺总分两种解析方式——优先解析.star_icon span的class如star_icon star_48取48除以 10 得 4.8失败则解析.star_score的文本。从源码结构看推荐菜*在网页解析失败时会被置为-而接口通道可以稳定返回优惠券信息*同理仅出现在接口数据中。其他信息#则来自详情页网页解析见下文 detail 部分在纯接口通道下不可见。搜索结果的典型展示下面两张图展示了搜索页规约字段在真实页面上的形态店铺列表项与店铺详情信息review评论页数据规约评论页爬取结果采用摘要 精选评论列表的两层结构整体规约如下数据结构定义于 function/review.py 的return_data与each_review字典{ 店铺id: -, # 所有方式都有 评论摘要: -, # 所有方式都有 评论总数: -, # 所有方式都有 好评个数: -, # 所有方式都有 中评个数: -, # 所有方式都有 差评个数: -, # 所有方式都有 带图评论个数: -, # 所有方式都有 精选评论: [ { 店铺id: -, # 所有方式都有 评论id: -, # 所有方式都有 用户id: -, # 所有方式都有 用户名: -, # 所有方式都有 用户打分: -, # 所有方式都有 # 注意接口为单评分网页为多评分 评论内容: -, # 所有方式都有 点赞个数: *, # 接口特有 回复个数: *, # 接口特有 浏览次数: *, # 接口特有 人均价格: -, # 所有方式都有 喜欢的菜: -, # 所有方式都有 发布时间: -, # 所有方式都有 商家回复: -, # 所有方式都有 评论图片: -, # 所有方式都有 } ], }review 各字段的源码解析依据在 function/review.py 中评论页请求会携带uuid/tcv走加密接口同时以网页解析结果兜底字段同样全部带 try/except 回退-的容错摘要层第一页一次性解析评论摘要解析.content span得到类似{描述: 口味, 个数: 8.7}的列表好评个数/中评个数/差评个数分别取.filter-good、.filter-middle、.filter-bad下的.count文本去掉首尾括号带图评论个数取.filter-pic .count评论总数由好评 中评 差评个数相加计算得出计算失败回退-。精选评论层逐条解析.main-review评论id取.actions a的data-id用户id取.name链接href的末尾路径段用户名取.name文本用户打分解析.score文本网页端可得到口味X 环境X 服务X的多维评分字典review_score_detail而接口端只有单一评分——这是规约中注明接口为单评分网页为多评分的原因同时会解析.sml-rank-stars的 class 得到用户总分评论内容取.review-words文本并清理收起评价、换行等杂质人均价格从.score文本中匹配人均X元并剥离元字喜欢的菜取.review-recommend文本去掉前 5 个字符后按空格拆分如招牌寿喜锅 极上M8霜降黑毛和牛 无菌蛋发布时间取.time文本商家回复取.shop-reply-content文本无回复时为评论图片收集.review-pictures a的href并拼接为http://www.dianping.com 路径的完整链接列表。点赞个数、回复个数、浏览次数均为*在网页端.main-review解析中没有对应选择器从源码结构看它们主要来自加密接口的返回数据因此规约中标记为接口特有如需这三个字段应确保走接口通道配置uuid与tcv。评论数据的典型展示下面这张图展示了单条精选评论在网页上的完整形态与each_review字典中的字段一一对应用户名、打分、人均价格、评论内容、喜欢的菜、发布时间、评论图片、商家回复等三种数据形态与存储规约如何落地数据规约最终通过 utils/saver/mongo_saver.py 写入 MongoDB三类数据对应三个集合数据形态触发链路MongoDB 集合写入前处理search搜索页爬取controller.main()完整流程第一步info按店铺id先删后插保证覆盖更新detail详情页爬取可选链路info_detail按店铺id先删后插review评论页爬取可选链路review按店铺id先删后插写入逻辑均为col.delete_many({店铺id: ...})后col.insert(data)即同一店铺的每次爬取结果会整体覆盖因此规约中的-占位符会在覆盖更新中体现为本次通道不可见的字段被清空为-——如果你后续用关系型数据库或 CSV 落地需要按 docs/save.md 中的说明自行拆分表结构该仓库目前仅维护 MongoDB 写入。使用规约时的注意点字段名可能轻微变化由于数据对齐个别字段名在不同版本或不同通道下可能微调请以 docs/data.md 当前版本为准下游解析不要硬编码假定字段永远不变。-是合法值而非脏数据规约中所有字段在该通道拿不到时都会置为-清洗时应将其与真实缺失、真实为 0如0、0区分开。*字段依赖接口通道推荐菜、优惠券信息、点赞个数、回复个数、浏览次数只有配置了加密接口uuid、tcv获取方法见 docs/json.md才会返回未配置时这些字段在输出中会是-。#字段依赖网页通道其他信息等网页特有字段只有走网页解析登录态携带 cookie才可见接口通道下不可见。评论详情是谨慎选择项需要登录态才能获取更多评论超过默认 10 条精选频繁请求会造成封号过段时间自动解开相关开关在 require.ini 的shop_review段need/more_detail/need_pages以及 spider_config.py 中有对应加载逻辑。总结数据规约是 Sniper 项目网页解析 加密接口双通道融合设计的输出层契约以-/*/#三个标记明确每个字段的可见性边界以最大集原则保证下游无论走哪条链路都能拿到统一结构的字典。配合 function/search.py 与 function/review.py 的容错解析失败统一回退-以及 utils/saver/mongo_saver.py 的按店铺覆盖写入你可以在拿到数据的第一时间就明确这个字段从哪来、值是什么形态、能不能信从而把精力集中在业务分析而非字段排查上。赞分享网页爬虫【免费下载链接】dianping_spider大众点评爬虫全站可爬解决动态字体加密非OCR。持续更新项目地址https://gitcode.com/gh_mirrors/di/dianping_spider点击查看免费下载相关推荐CANN ops-nn稀疏转稠密算子SparseToDense 产品支持情况 | 产品 | 是否支持 | | : | : : | | term Ascend 950PR/Ascend 950DT人工智能算子库深度学习CANNAscend大众点评爬虫项目使用问题分析与解决方案大众点评爬虫项目使用问题分析与解决方案 项目背景 大众点评爬虫项目是一个用于采集大众点评网站数据的开源工具。该项目通过模拟浏览器行为能够获取店铺信息、用户评论网页爬虫上一篇终极FastAPI部署自动化指南GitHub Actions与CI/CD全流程实战下一篇【技术专题】LangChain4j实战指南Java智能应用开发全解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

nunif 字体资源模块实战:基于 font_resource 下载管理日文字体并生成元数据清单

nunif 字体资源模块实战:基于 font_resource 下载管理日文字体并生成元数据清单

人工智能深度学习计算机视觉图像处理视频处理预训练 【免费下载链接】nunif Misc; latest version of waifu2x; 2D video to stereo 3D video conversion 项目地址: https://gitcode.com/gh_mirrors/nu/nunif 点击查看 免费下载 本篇技术指南聚焦开源项目 nunif 中…

2026/10/5 13:02:58 阅读更多 →
勒索行为也能做基因检测:安当RDM 的加密行为识别

勒索行为也能做基因检测:安当RDM 的加密行为识别

一、为什么特征库思路在勒索面前会失灵 做防勒索软件选型时,很多工程师第一反应是"装个杀毒、更新病毒库"。但勒索病毒的对抗逻辑和一般恶意程序不同:它的核心动作是"加密用户文件",而加密本身是一组完全合法的、操作系统…

2026/10/5 13:02:57 阅读更多 →
tldr 项目中的别名命令页解析:以 pw-midirecord 与 PipeWire MIDI 录制为例

tldr 项目中的别名命令页解析:以 pw-midirecord 与 PipeWire MIDI 录制为例

文档教程知识库 【免费下载链接】tldr Collaborative cheatsheets for console commands 📚. 项目地址: https://gitcode.com/GitHub_Trending/tl/tldr 点击查看 免费下载 本文以 tldr 仓库中的别名页 pages.bg/linux/pw-midirecord.md 为核心&#xff…

2026/10/5 13:00:57 阅读更多 →

最新新闻

海淀区统计年鉴(2005-2025)

海淀区统计年鉴(2005-2025)

海淀区统计年鉴(2005-2025)数据来源:海淀区统计局数据年份:2005-2025数据格式:pdf目录:海淀区2024年国民经济和社会发展统计公报…STATISTICAL COMMUNIQUE ON THE 2024 NATIONAL ECONOMIC AND SOCIAL DEVEL…

2026/10/5 14:22:41 阅读更多 →
AI时代湖仓一体实践:从架构选型到规范落地全攻略

AI时代湖仓一体实践:从架构选型到规范落地全攻略

上周四晚上 11 点,我朋友在群里丢了一张监控截图:他们刚上线的湖仓任务,凌晨 ETL 跑了三个小时没跑完,分区表却生成了四千多个小文件。底下有人回了一句——“你们不是上了 AI 吗?”朋友回:AI 是上了&#…

2026/10/5 14:22:41 阅读更多 →
RAG进阶实战:从MVP到生产级Agent与向量库调优

RAG进阶实战:从MVP到生产级Agent与向量库调优

1. 为什么我要做这个RAG进阶实战专栏 过去大半年,我一直在帮团队和外部客户落地RAG项目,从最简单的“文档切片向量检索拼Prompt”三件套,到后来涉及多路召回、重排序、知识图谱融合、Agent调度,踩过的坑比写过的代码还多。市面上R…

2026/10/5 14:22:41 阅读更多 →
RAG进阶实战:从能跑到好用,突破检索增强与Agent编排瓶颈

RAG进阶实战:从能跑到好用,突破检索增强与Agent编排瓶颈

1. 为什么我要做这个RAG进阶专栏过去大半年,我几乎把业余时间全砸在了RAG这个方向上。从最早用Ollama加一个本地向量库跑通"能问答"的玩具,到后来给团队做真正能上线的知识库系统,中间踩的坑多到可以写一本错题集。我发现一个很普遍…

2026/10/5 14:22:41 阅读更多 →
基于FrFT与Curvelet变换的图像加密算法及Matlab实现

基于FrFT与Curvelet变换的图像加密算法及Matlab实现

做了这么多年图像处理,我对加密这块从一开始的“不屑”到后来“真香”,中间经历了不少弯路。最早做图像加密,脑子里只有置乱和扩散这两板斧:Arnold猫脸映射先把像素位置搅乱,再拿Logistic序列把灰度值做异或。听起来没…

2026/10/5 14:22:41 阅读更多 →
Kimi K2 驱动 AI 文档阅读助手实战:零代码用 Claude Code 一天打造全栈文档管理网站

Kimi K2 驱动 AI 文档阅读助手实战:零代码用 Claude Code 一天打造全栈文档管理网站

文档教程知识库人工智能 【免费下载链接】ai-guide 程序员鱼皮的 AI 资源大全 Vibe Coding 零基础教程,分享 OpenClaw 保姆级教程、大模型玩法(DeepSeek / GPT / Gemini / Claude / GLM)、最新 AI 资讯、Prompt 提示词大全、AI 知识百科&…

2026/10/5 14:21:41 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →