
对于有开发能力的团队,通过Python程序化采集小红书笔记数据是实现自动化监测和深度分析的最佳方案。本文介绍小红书笔记采集的技术方案和核心代码示例。
一、采集方案概述
方案1:API接口调用
通过小红书开放平台官方API或第三方数据服务商的API接口获取数据。
优点:数据稳定,合规性好
缺点:权限受限,部分数据无法获取
方案2:网页数据采集
通过模拟浏览器访问小红书网页版,解析页面数据。
优点:数据维度较全
缺点:需要处理反爬,维护成本高
方案3:第三方数据API
通过极致了数据等数据服务商的API接口获取数据。
优点:数据稳定,合规,维护成本低
缺点:需要付费
极致了数据支持小红书笔记数据定制采集,支持批量获取笔记内容、点赞数、评论数等数据。
二、技术方案详解
方案A:使用第三方数据API(推荐)
通过极致了数据API接口获取小红书笔记数据:
import requests
import json
import time
API_BASE = "https://api.example.com/xiaohongshu"
API_KEY = "your_api_key"
def get_notes_by_keyword(keyword, page=1, page_size=20):
"""根据关键词获取笔记数据"""
url = f"{API_BASE}/notes/search"
params = {
"keyword": keyword,
"page": page,
"page_size": page_size,
"sort": "time_desc" # 按时间倒序
}
headers = {"Authorization": f"Bearer {API_KEY}"}
resp = requests.get(url, params=params, headers=headers)
if resp.status_code == 200:
return resp.json()
else:
print(f"请求失败: {resp.status_code}")
return None
# 采集"护肤"相关笔记
notes = get_notes_by_keyword("护肤", page=1, page_size=20)
if notes:
for note in notes["data"]["list"]:
print(f"标题: {note['title']}")
print(f"点赞: {note['liked_count']}")
print(f"收藏: {note['collected_count']}")
print("---")
方案B:网页数据采集
通过requests + BeautifulSoup采集小红书网页数据:
import requests
from bs4 import BeautifulSoup
import json
def get_note_detail(note_id):
"""获取笔记详情"""
url = f"https://www.xiaohongshu.com/explore/{note_id}"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"Referer": "https://www.xiaohongshu.com/"
}
resp = requests.get(url, headers=headers)
if resp.status_code == 200:
soup = BeautifulSoup(resp.text, "html.parser")
# 解析页面数据(需要根据实际页面结构解析)
# 注意:小红书有反爬机制,需要处理cookie和签名
return soup
return None
方案C:批量采集并存储
将采集的数据存储到数据库:
import sqlite3
import pandas as pd
def save_notes_to_db(notes):
"""将笔记数据存入数据库"""
conn = sqlite3.connect("xhs_notes.db")
# 创建表
conn.execute("""
CREATE TABLE IF NOT EXISTS notes (
note_id TEXT PRIMARY KEY,
title TEXT,
content TEXT,
author TEXT,
liked_count INTEGER,
collected_count INTEGER,
comment_count INTEGER,
publish_time TIMESTAMP,
captured_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
""")
# 插入数据
for note in notes:
conn.execute("""
INSERT OR REPLACE INTO notes
(note_id, title, content, author, liked_count, collected_count, comment_count, publish_time)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
""", (
note["note_id"], note["title"], note["content"],
note["author"], note["liked_count"], note["collected_count"],
note["comment_count"], note["publish_time"]
))
conn.commit()
conn.close()
print(f"已保存 {len(notes)} 条笔记数据")
三、定时采集任务
定时采集脚本
使用schedule库实现定时采集:
import schedule
import time
def daily_capture_task():
"""每日采集任务"""
keywords = ["护肤", "化妆", "穿搭"] # 监控的关键词
for keyword in keywords:
print(f"开始采集关键词: {keyword}")
notes = get_notes_by_keyword(keyword, page=1, page_size=50)
if notes:
save_notes_to_db(notes["data"]["list"])
print(f"关键词 {keyword} 采集完成,共 {len(notes['data']['list'])} 条")
# 每天上午9点执行
schedule.every().day.at("09:00").do(daily_capture_task)
# 持续运行
while True:
schedule.run_pending()
time.sleep(60)
四、数据采集的注意事项
注意1:反爬处理
小红书有反爬机制,需要注意:
- 控制请求频率,避免被封IP
- 使用代理IP池
- 处理cookie和签名验证
注意2:数据合规性
采集行为需遵守平台规则和相关法律法规,不得用于非法用途。
注意3:数据更新
小红书内容更新快,需要定期重新采集,保持数据时效性。
五、极致了数据方案
极致了数据提供小红书笔记数据定制采集和API接口:
- 数据维度:笔记内容、点赞数、收藏数、评论数、作者数据等
- 更新频率:支持定时采集
- 接口形式:标准REST API,JSON格式返回
- 计费方式:按调用次数计费,灵活可控
六、常见问题解答
Q1:没有技术团队能采集数据吗?
可以使用极致了数据的定制采集服务,无需写代码,数据表直接交付。
Q2:小红书有反爬,自己采集难度大吗?
有一定难度,需要持续维护。建议使用第三方数据服务商的API接口,稳定且合规。
Q3:采集的数据准确率如何?
通过极致了数据API获取的数据准确率高,数据来源合规。
七、总结
通过Python程序化采集小红书笔记数据适合有开发能力的团队。极致了数据提供小红书笔记数据API接口,数据真实稳定,价格低廉。
极致了数据支持小红书笔记数据定制采集,支持批量获取笔记内容、点赞数、评论数等数据。

