项目一:拼多多全类目商品实时价格与销量监控系统(高并发爬虫 + 数据分析)
背景与目标: 客户为品牌渠道管控公司,需对拼多多平台上200+个重点SKU(包括自营与授权店铺)进行每日价格监测,抓取商品标题、价格、拼单价、已拼数量(销量)、店铺名及评价总数,防止乱价及假货店铺。要求数据延迟不超过2小时,并支持历史趋势分析。
我的角色与任务: 独立完成全部技术选型、爬虫开发、反爬破解、数据清洗及看板交付。
技术难点与解决方案:
拼多多反爬核心对抗: 拼多多Web端主站存在强反爬机制,包括请求头签名(anti_content参数)、请求体加密、频繁弹验证码以及基于用户行为的封号策略。我放弃普通短效Cookie方案,改用手机App端API模拟方式:通过抓包分析拼多多移动端H5及Android接口,发现部分开放平台接口防护相对较弱。使用mitmproxy结合安卓真机/模拟器提取稳定Cookie及access_token,并编写自动化脚本定时刷新。针对anti_content,逆向分析其生成逻辑中的关键时间戳与设备指纹组合方式,采用execjs调用魔改后的JS脚本实时计算,成功率维持在85%以上。
大规模并发与限流: 需要每天抓取约3万次商品详情。采用Scrapy + 代理IP池(自建隧道代理+米扑代理),设置随机延时1-3秒,并开发了自适应限流中间件:当检测到HTTP 403或响应中出现“验证”关键词时,自动切换代理并降级请求速度。同时利用Redis对已抓取的商品ID进行去重,避免重复采集。
销量与价格逻辑处理: 拼多多商品页的“已拼”数量包含单日销量及总销量混合字段,且部分商品价格依赖拼团参数。我通过分析多页数据,找到goods_id与promotion_rate的关联规则,计算出近似真实总销量;价格则同时采集“单独购买价”与“拼团价”,便于客户分层监控。
数据分析与交付: 采集原始数据约210万条/月。使用Pandas完成:① 清洗异常值(如销量突增为负、价格为0);② 合并同一商品不同时间点的数据,计算日销量环比、价格波动率;③ 识别疑似乱价店铺(售价低于指导价15%且销量异常)。最终通过Flask + ECharts搭建简易管理看板,提供图表展示及CSV导出功能。客户根据数据成功下架7家侵权店铺,投诉乱价链接40余条。项目稳定运行半年,被封IP次数控制在每月2次以内,均通过换代理及更新签名脚本恢复。
项目二:拼多多商品评论情感分析与竞品舆情挖掘(全链路数据处理 + 后端API)
背景与目标: 某消费品品牌想了解自身与主要竞品在拼多多上的用户口碑。需要爬取指定10款商品的全部评论(含用户昵称、评价内容、晒图、追评、评分),并进行情感倾向分析及关键词提取,最终提供可检索的API接口和可视化报告。
我的任务: 开发支持分页与异步的评论采集模块,设计数据清洗与NLP分析流程,并搭建FastAPI后端供内部团队调用。
技术实现细节:
评论采集难点: 拼多多商品评论接口采用POST请求,参数中包含size、page、oid等,且评论列表为动态加载,返回数据经过gzip压缩。我使用requests模拟请求,携带从主商品详情页获取的anti_content及动态Cookie。由于评论页数可能超过200页(部分爆款商品),设计断点续爬机制:将每个商品的当前页码存入Redis,中断后自动恢复。同时利用aiohttp实现异步并发,单商品评论爬取速度提升3倍。
数据清洗与脱敏: 原始评论包含大量表情符号(如[开心]、[流泪])、无效字符及用户艾特内容。使用正则表达式配合emoji库过滤,并替换网络用语为规范表达。对于追评数据,单独存储并与初评关联。
情感分析建模: 采用SnowNLP + 自定义情感词典的方式。自定义词典加入了拼多多场景下的特定词(如“发货慢”、“假货”、“便宜实惠”、“砍一刀”等),并将电商五星评分映射为情感权重(5星为正面,1-2星为负面)。最终对每条评论输出正面/负面/中性标签及置信度分数。负面评论自动聚类,通过jieba分词 + TF-IDF提取高频问题词(例如“破损”、“色差”、“客服不回复”)。
后端API开发: 使用FastAPI构建RESTful API,提供三个核心接口:① 按商品ID查询评论列表(支持评分、情感标签、关键词过滤);② 获取指定时间段的情感趋势曲线;③ 获取竞品对比词云数据。接口采用JWT认证,响应数据格式为JSON,并利用Redis缓存热点商品的聚合结果(TTL 1小时)。数据库方面,清洗后的评论存入MongoDB(灵活存储非结构化的评论文本及追评),商品基本信息和统计结果存入MySQL。
交付成果: 交付完整爬虫代码、情感分析脚本、API文档(Swagger UI)