尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

小红书服饰行业数据分析全流程:从爬虫到可视化实战

小红书服饰行业数据分析全流程:从爬虫到可视化实战 简介这份资源围绕2022年4月至5月小红书服饰行业数据提供一套完整的Python数据分析项目适合数据分析初学者、计算机专业学生及毕业设计选题者。压缩包共9个文件包含2个Jupyter Notebook源码、6个Excel数据表和1个交互式HTML可视化文件总计仅636KB便于快速下载与运行。项目覆盖行业笔记趋势、内容关键词TOP100、品类占比、年龄与地域分布、评论热词等多个维度从数据清洗、统计分析到可视化展现均有清晰代码实现可帮助读者理解数据分析全流程。目前已有159人学习可用于掌握Pandas、Matplotlib、Seaborn等工具的实际分析流程也可作为服饰行业市场洞察或课程设计的参考案例。通过复现项目读者能获得从原始Excel数据到最终图表报告的一整套分析思路与可复用脚本辅助品牌了解用户偏好为内容运营与选品策略提供数据支撑。 小红书服饰行业的数据分析是我最近带着团队一起啃下来的一个项目。说实话只看“数据分析-75”这个编号看不出名堂但拿到完整的笔记和互动数据后你会发现服饰这个类目在小红书上的内容生态远比想象中复杂——它不只是“好看的衣服”那么简单背后藏着用户对风格、价格、场景、品牌的多重偏好。这期文章我就把这个项目的完整链路拆开来讲从数据获取、清洗、分析到可视化代码和踩坑记录一并放出希望能给正在做内容平台行业分析的朋友一些参考。1. 项目背景与整体思路拆解1.1 为什么选择小红书服饰行业作为分析对象服饰一直是小红书笔记体量最大的类目之一但体量大不意味着好分析。这个行业的特殊之处在于用户决策高度依赖视觉内容笔记的互动数据点赞、收藏、评论受封面图、标题文案、发布时间、价格锚点等多重因素影响单纯看曝光量或者点赞数很容易得出片面结论。我在做这个项目之前内部讨论过好几个方向——美妆、家居、母婴都看过最终选定服饰原因有三服饰类目的笔记结构相对标准标题、正文、图片标签、品牌提及等信息完整度高适合做文本和数值的交叉分析。互动数据的“信号强度”高。用户收藏一篇服饰笔记往往意味着有明确的购买意向或穿搭模仿意愿这比美妆笔记的“点赞即完事”行为更有分析价值。服饰的季节性波动明显可以顺带观察内容供给和用户需求之间的节奏差异。所以这个项目的定位不是“做一张好看的数据看板”而是要回答几个具体问题什么风格的服饰笔记最容易获得高互动品牌提及度和互动量之间到底是什么关系价格带在笔记内容里是如何分布的用户到底在收藏什么样的穿搭方案1.2 整体技术选型从爬虫到可视化的链路设计这个项目的数据量级不算夸张——最终清洗后进入分析阶段的笔记大约3.2万条含完整的标题、正文、标签、点赞数、收藏数、评论数、发布时间和部分品牌信息。这个量级用单机Python完全跑得动没必要上Spark或者Hadoop杀鸡用牛刀反而拖慢节奏。技术链路我选的是经典的Python三件套数据采集Scrapy框架 代理IP池针对小红书Web端接口进行定向采集。数据清洗与分析Pandas NumPy处理缺失值、文本清洗、分组聚合。可视化Matplotlib WordCloud Seaborn输出图表直接用于汇报。为什么不用现成的采集工具市面上虽然有不少小红书数据采集服务但一方面价格不便宜另一方面拿到的数据字段不全尤其是正文文本和评论内容经常被截断这对于做文本分析来说是致命的。自己写爬虫虽然前期麻烦点但字段可以完全按需定制后续清洗和分析的自由度大很多。选型上还有一个关键决策数据存储用CSV而不是数据库。这个项目的分析是一次性探索性质不需要频繁更新CSV文件配合Pandas的read_csv就能搞定省去搭数据库的时间。但如果你打算长期监控趋势建议还是落到MySQL或PostgreSQL里后续做增量更新会更顺手。2. 数据采集与预处理实战2.1 小红书数据采集的方案设计与合规边界先强调一句任何平台的公开数据采集都要遵循其Robots协议和服务条款本项目的采集范围仅限于公开可访问的笔记内容不涉及用户隐私信息和非公开数据。建议你在做类似项目时务必确认自己的行为在合规范围内。采集方案上我采用的是关键词检索 笔记详情页解析两步走第一步通过小红书搜索接口用“连衣裙”“卫衣”“牛仔裤”“外套”“半身裙”等一级类目词以及“法式穿搭”“日系穿搭”“通勤穿搭”等风格词拉取笔记列表每轮分页获取笔记ID。第二步遍历笔记ID请求笔记详情页解析标题、正文、一级标签、点赞数、收藏数、评论数、发布时间、作者信息等字段。这里有一个很关键的参数设计搜索词的覆盖范围决定了数据样本的代表性。我只用了20多个关键词其中既有类目词也有风格词和场景词比如“约会穿搭”“面试穿搭”这样能保证样本不过度偏向某一个细分方向。最终3.2万条笔记里类目词来源大约占六成风格场景词占四成分布基本均衡。代理IP池是绕不开的环节。小红书对高频请求的限制比较严格单IP每分钟请求超过30次基本就会触发风控返回验证页面。我当时的做法是准备了一个500个IP的代理池每次请求随机抽取一个IP配合随机延时1~3秒把单IP的请求频率控制在安全阈值内。实测下来采集3.2万条笔记花了大约11个小时中途没有出现被封的情况。2.2 数据清洗的关键细节从原始文本到规整表格采集回来的原始数据说实话挺脏的。最典型的几个问题文本编码混乱部分表情符号和特殊字符在抓取时会变成乱码需要统一处理成UTF-8。互动数据单位不统一小红书Web端返回的点赞数有时候是“1.2万”这种格式需要转成纯数字。字段缺失部分笔记没有品牌提及部分笔记的正文被折叠需要标记为缺失值而不是直接丢弃。重复数据不同关键词可能会命中同一条笔记需要根据笔记ID去重。清洗代码的核心逻辑如下import pandas as pd import re def clean_count(value): if isinstance(value, str): if 万 in value: return int(float(value.replace(万, )) * 10000) return int(value.replace(,, )) return value def clean_text(text): # 去除HTML标签 text re.sub(r[^], , text) # 去除emoji和特殊符号 text re.sub(r[^\u4e00-\u9fa5a-zA-Z0-9\s。、\\\\], , text) # 合并多余空格 text re.sub(r\s, , text).strip() return text # 去重 df df.drop_duplicates(subsetnote_id, keepfirst) # 清洗互动数据 for col in [liked_count, collected_count, comment_count]: df[col] df[col].apply(clean_count) # 清洗文本字段 df[title] df[title].apply(clean_text) df[desc] df[desc].apply(clean_text) # 处理缺失值 df[brand] df[brand].fillna(未知) df df.dropna(subset[title, desc])这里特别提醒一下去重操作必须放在清洗互动数据之前因为重复数据在抓取时可能因为时间差导致互动数不一致先去重能保证后续聚合统计的准确性。3. 核心分析维度与代码实现3.1 服饰类目与风格类型的分布特征数据清洗完成后第一步做的是类目和风格的分布分析。我先用关键词匹配的方式给每条笔记打上类目标签——标题或正文中出现“连衣裙”“裙子”归入裙装类“卫衣”“毛衣”“针织衫”归入上装类以此类推。def categorize(note_text): text str(note_text) if any(kw in text for kw in [连衣裙, 裙子, 半身裙, jk裙]): return 裙装 if any(kw in text for kw in [卫衣, 毛衣, 针织衫, t恤, 衬衫]): return 上装 if any(kw in text for kw in [牛仔裤, 休闲裤, 西裤, 阔腿裤]): return 裤装 if any(kw in text for kw in [外套, 风衣, 大衣, 羽绒服, 棉服]): return 外套 if any(kw in text for kw in [内搭, 打底, 吊带]): return 内搭 return 其他 df[category] df[title] df[desc] df[category] df[category].apply(categorize)统计结果挺有意思裙装和上装几乎占了一半内容但两者的互动表现差异很大——裙装笔记的平均收藏数是上装的1.8倍左右。这说明用户刷到裙装笔记时更容易产生“先收藏、以后可能买”的行为而上装笔记更多是“看过即走”。这种类目间的行为差异对内容运营和品牌投放的参考价值都比较大。风格标签我用了另一套关键词库包括“法式”“日系”“韩系”“通勤”“休闲”“甜美”“复古”“辣妹”“极简”“街头”等十来个主流风格词。分析后发现风格词的分布高度集中前五大风格占据了接近70%的笔记总量但“法式”和“通勤”这类风格虽然笔记量不是最大互动转化率却明显更高。这也侧面说明了一个长期存在的内容供需矛盾用户爱看的内容供给未必充足。3.2 品牌提及度与互动表现的关系挖掘品牌分析是服饰类数据分析绕不开的模块。我的做法是拉取了50个主流服饰品牌名单在笔记标题和正文里做字符串匹配统计每个品牌的“被提及笔记数”和“平均互动量”。brands [优衣库, zara, ur, 太平鸟, veromoda, only, lululemon, 耐克, 阿迪达斯, 安踏, 李宁, moussy, sly, dazzle, 鄂尔多斯, 之禾, 江南布衣, initial] def detect_brand(text): for brand in brands: if brand.lower() in str(text).lower(): return brand return 未提及 df[brand] df[title] df[desc] df[brand] df[brand].apply(detect_brand)这里有个很有意思的发现品牌提及度和互动量之间并不完全是正相关。像优衣库这种被提及量极高的品牌其笔记平均互动量反而略低于整体水平原因很可能是优衣库相关内容里UGC和官方营销内容混杂用户已经产生了审美疲劳。反倒是国内设计师品牌和运动品牌比如李宁、安踏的部分高端线虽然被提及量不大但一旦出现在笔记里互动数据非常亮眼。这给品牌方的启示很直接在小红书上做服饰营销不能只追求品牌名字被频繁提及更要关注笔记内容本身的创意和差异化让用户因为内容质量而收藏而不是因为品牌logo而划走。3.3 价格带与笔记表现的交叉分析价格是服饰消费决策的核心变量之一但小红书笔记里很少直接写价格需要从标题和正文里提取。我的提取策略是正则匹配抓取“价格”附近的数字比如“199元”“¥299”“三百左右”这类表述。def extract_price(text): patterns [ r(\d{3,5})\s*元, r¥\s*(\d{3,5}), r(\d{3,5})\s*块, r(\d{3,5})\s*r\s*m\s*b ] for pattern in patterns: match re.search(pattern, str(text)) if match: return int(match.group(1)) return None df[price] df[title] df[desc] df[price] df[price].apply(extract_price)提取结果是大约38%的笔记能检测到明确的价格信息剩下的根据发布时间和类目进行分段估计。价格带划分我用了五档100以下、100-300、300-500、500-1000、1000以上。交叉分析后的结论很清晰100-300元价格带是小红书服饰笔记的“甜蜜区”这个区间的笔记数量最多平均互动表现也最好。300-500元是第二梯队但互动量的方差明显变大——也就是说这个价位段的笔记表现两极分化严重要么爆款要么无人问津。1000元以上的高价位笔记虽然数量少但只要内容到位平均收藏率反而不错因为高价位笔记的受众更精准收藏行为的决策权重更高。这个结论对于达人合作选品很有参考价值如果你是一个中小体量的服饰博主主攻100-300元价格带的穿搭内容跑出爆款的概率会比做高价位内容更大。因为平台对这个价格带的内容供给需求最旺盛用户的消费能力匹配度也最高。4. 可视化呈现与结论解读4.1 词云与热度的可视化设计文本数据的可视化我首推词云。它虽然被很多人诟病“不严谨”但在探索性分析阶段词云能快速给出内容主题的整体感知用好了效率极高。我的词云生成逻辑是先把所有笔记的标题和正文合并用结巴分词做词性过滤只保留形容词和名词去除“这个”“那个”“就是”这类无意义词汇再叠加每篇笔记的收藏数作为权重让高互动笔记里的词在词云中占据更大面积。import jieba import jieba.analyse from wordcloud import WordCloud import matplotlib.pyplot as plt # 合并文本按收藏数加权 weighted_text for _, row in df.iterrows(): text str(row[title]) str(row[desc]) weight min(row[collected_count] / 10, 100) # 设置权重上限 weighted_text (text ) * int(weight) # 提取关键词 keywords jieba.analyse.extract_tags(weighted_text, topK80) wc WordCloud( font_path/System/Library/Fonts/PingFang.ttc, width800, height600, background_colorwhite, max_words100 ).generate( .join(keywords)) plt.figure(figsize(10, 8)) plt.imshow(wc, interpolationbilinear) plt.axis(off) plt.show()实测下来最终词云里“显瘦”“高级感”“通勤”“法式”“平价”“约会”这几个词占据核心位置。这其实和我们对服饰内容生态的直觉判断一致——用户在小红书上找的从来不只是衣服本身而是“穿上后的状态”显瘦和高级感这类描述词的高频出现说明用户在内容消费时带有明确的情感投射和场景想象。词云之外互动数据的可视化我用得最多的是分组柱状图和箱线图。比如上面提到的类目互动分析用按类目分组的平均收藏数柱状图展示一眼就能看出裙装和其他类目的差距价格带分析则用箱线图能清晰展示中位数、四分位距和异常值分布避免只被平均数带偏判断。4.2 从图表到业务结论的转化思路很多数据分析项目的问题是最后交付的是一堆图表但没有业务结论——做图谁都会难的是把图变成行动建议。这个项目里我强制要求每个分析模块必须输出“如果我是品牌/博主我该怎么做”的结论。以价格带分析为例图表显示100-300元价格带的笔记数量最多、互动表现最好直接给出的行业建议是这个价格带已经很拥挤新入场的品牌需要找到更细分的切入点比如“100-200元的通勤裙装”而非泛泛的“平价穿搭”。而对于高价品牌图表显示的互动方差大并不是坏事说明只要内容足够精准就有机会在小众圈层里跑出高互动没必要强行下沉。风格分析这块我额外做了一个“风格供需差”的指标——某种风格笔记的占比减去该风格笔记平均互动量的排名归一化值正数表示供给过量、负数表示供不应求。计算结果显示“通勤”和“法式”的供需差为负属于典型的蓝海方向。这种图表之外的衍生计算才是探索性分析最有价值的部分。5. 常见问题与排查技巧实录5.1 数据采集环节的典型问题采集环节最容易翻车的地方是接口返回结构变化。小红书的Web端接口在前端改版时经常调整返回字段比如笔记详情页里点赞数字段的路径可能从note.interactInfo.likedCount变成data.note.interactInfo.likedCount。我的建议是爬虫代码里做好字段提取的异常捕获一旦某条笔记的解析失败立即记录日志并跳过不要因为单条数据导致整个爬虫崩溃。代理IP的稳定性和速度也是一大坑。我在项目中期测试发现某些代理IP虽然显示连通但响应速度慢到4秒以上严重拖慢整体采集效率。后来加了响应时间过滤逻辑——延迟超过2秒的IP直接剔除后续请求不再使用——整体采集速度立刻提升了近一倍。还有一点值得提醒小红书对图片内容同样有限流策略如果采集了笔记里的图片URL后续批量下载图片时一定要做下载频率控制否则很容易触发频控。图片在这里属于辅助数据不需要全量采集按需采样即可。5.2 分析过程中的统计陷阱这里说两个我在分析中踩过的坑也是很多做类似项目的人容易忽略的第一个坑是幸存者偏差。我采集的笔记里有大量高互动爆款但也有不少个位数互动的长尾内容如果只用全量平均来看各风格的表现会被爆款拉高整体水平导致判断失误。建议在分析中同时使用中位数和分位数并对样本量过低的风格标签做剔除处理。第二个坑是文本匹配关键词的同义词问题。比如“牛仔”和“丹宁”指的是同一个类目但如果关键词库只放了一个就会漏掉大量相关笔记。我最后的解决方法是扩充同义词词典并在分析前做一次小样本验证——随机抽取50条被归类为“其他”的笔记人工检查是否存在明显漏分的情况。5.3 项目可扩展的方向与后续设想这个项目做完主体分析后我梳理了三个值得继续深挖的方向评论内容的细粒度情感分析目前只分析了笔记本身的互动数据和正文没有对评论区做情感分类。服饰行业里评论区的“求链接”“上身效果怎么样”“质量如何”是极高价值的信号用文本分类模型可以进一步挖掘。笔记发布时间与互动表现的关系翻了下数据晚上8点到10点发布的笔记互动表现似乎更好但这只是粗略观察严谨地做需要引入发布时间的小时分布和发布时间窗口分析控制节假日等干扰因素。跨周期追踪同一批笔记目前只有采集时间点的截面数据如果连续追踪同一批笔记一个月能看到互动数据的增长曲线识别出“慢热型”和“快热型”爆款的差异这对内容运营的策略制定会更有帮助。6. 实操中的个人体会这个项目自己实际操盘下来最大的感触是做行业数据分析技术能力只占一半剩下的一半是对业务的理解和对数据的耐心。技术层面Python生态里的Pandas和Scrapy足够撑起一个完整的数据分析项目不需要什么高深的大数据框架。如果你对数据量预估在十万条记录以内单机处理完全够用把精力花在业务指标设计上更值得。业务层面懂一点服饰行业的常识特别重要——比如知道“法式风”和“通勤风”分别代表什么、知道“95后”和“85后”在穿搭搜索上的偏好差别这些背景知识能让分析更深入而不是停留在“词频统计”的表面。最后再分享一个小技巧在做完所有分析和可视化后建议把每一个分析结论都配上数据来源的说明和抽样验证的截图这样在向客户或团队汇报时能大幅提升可信度。数据可信结论才有价值——这是我做这类探索性项目最深刻的一课。本文还有配套的精品资源点击获取
返回列表