首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用影刀小红书低粉爆款关键词笔记采集

用影刀小红书低粉爆款关键词笔记采集

原创
作者头像
LucianaiB
发布2025-09-17 22:13:09
发布2025-09-17 22:13:09
1080
举报

小红书低粉爆款关键词笔记采集

一.详细教程

1.多维表初始化

作用:存储采集的笔记,可以看作是一个数据库,放数据的空间。

1.去飞书开放平台(https://open.feishu.cn/app?lang=zh-CN),新建一个应用。

2.进入应用右侧的权限管理,开通多维表格云文档两个的全部权限。

img
img
img
img
img
img

3.创建版本并发布应用。

4.在凭证与基础信息获取 AppIdAppSecret

img
img

5.新建一个多维表(https://sxuwebtech.feishu.cn/base)。

6.给多维表添加应用。

img
img

7.获取多维表格ID

例如在https://sxuwebtech.feishu.cn/base/Mm4rbGcJAarsVgsZcRJcAVtUnHb?table=tblZmrlvx4szaXyp&view=vewis9KNIn中Mm4rbGcJAarsVgsZcRJcAVtUnHb是多维表格ID

img
img

就这样我们得到了AppIdAppSecret以及多维表格ID

AppId

AppSecret

多维表格ID

2.设置自定义对话框

具体设置如下:

img
img

3.建立多维表连接

找到建立多维表格链接指令。

img
img

使用列出记录(视图)获取多维表内容。

img
img

使用json数据提取提取具体的列的内容。

img
img

可以通过打印日志查看是否成功了解。

4.打开关键词网站

通过分析:https://www.xiaohongshu.com/search_result?keyword=RPA&type=51中替换RPA这个关键词就可以使其变为目标关键词的网站,即目标网站为:https://www.xiaohongshu.com/search_result?keyword={自定义中关键词的}&type=51

img
img

5.按照筛选排序

新建一个全局变量排序方式,并且为其赋值初始化时的排序方式,在后续会需要。

img
img
img
img

使鼠标停在筛选的按钮上才会出现选项。

img
img

捕获筛选条件,并且在文本匹配中使用全局变量

img
img

6.循环获取笔记网站

使用循环获取列表(Web)获取每个笔记,然后点击循环的笔记,使用获取网页信息,获取每个笔记的链接+关闭当前笔记,就使用获取到了每个笔记的网站。

img
img

判断获取的笔记是否在多维表中,如果包含,则打印日志,关闭笔记,进行下一次循环,如果不存在,则进行操作。

img
img

7.采集笔记信息

笔记标题
img
img
img
img
笔记正文
img
img
img
img
笔记点赞数+收藏数+评论数
img
img

注意:如果数量实际为0,那么捕获的是文字——"点赞","收藏","评论",将其赋值为0。

img
img
笔记类型

获取笔记是图片还是视频可以通过笔记左侧展示的格式来判断,使用 if网页包含指令 可以做到这个功能,初始化为视频类型,如果包含图文的则为图文类型,否则为视频类型。

img
img
笔记封面图

通过获取笔记封面,分析源码可知,通过src可以获取到封面链接。

img
img
img
img
笔记发布时间

使用魔法指令对日期进行提取与处理,我的提示词如下:

代码语言:Plain
复制
对捕获的信息进行日期提取,以及转换,依据当前时间转换
在编辑于 昨天 15:17 上海 提取 昨天 15:17
在编辑于 5天前 浙江 提取 5天前
可以处理多种日期提取

转换规律:
如提取日期:昨天 11:02,当前时间为2025-9-11,那么输出2025-9-10
如提取日期:前天 11:02,当前时间为2025-9-11,那么输出2025-9-09
如提取日期:07-31,那么输出07-31
如提取日期:5小时前,3分钟前等,根据当前时间,判断对于的输出日期
img
img
img
img

也可以选择使用python代码来处理

代码语言:Python
复制
# 使用此指令前,请确保安装必要的Python库,例如使用以下命令安装:
# pip install python-dateutil

import re
from datetime import datetime, timedelta

# 移除不必要的导入和print重定义,保持代码简洁和xbot-command规范
# 
# try:
#     from xbot.app.logging import trace as print
# except:
#     

from typing import *
try:
    from xbot.app.logging import trace as print
except:
    from xbot import print

def extract_and_convert_date(text_with_date: str) -> str:
    """
    title: 提取并转换日期信息
    description: 从文本 % text_with_date % 中提取日期信息,并根据当前时间进行转换。支持“昨天”、“前天”、“X天前”、“X小时前”、“X分钟前”、“MM-DD”以及“YYYY-MM-DD”等多种格式。
    inputs:
        - text_with_date (str): 包含日期信息的文本,eg: "在编辑于 昨天 15:17 上海", "在编辑于 5天前 浙江", "07-31", "5小时前", "2024-07-22"
    outputs:
        - converted_date (str): 转换后的日期字符串,格式为“YYYY-MM-DD”或“MM-DD”,eg: "2025-09-10", "2024-07-31", "2024-07-22"
    """

    now = datetime.now()

    def _convert_relative_time_ago(match) -> str:
        """
        处理相对时间(X天前、X小时前、X分钟前)
        此函数期望接收一个re.Match对象,并根据捕获组计算日期。
        """
        if 'days_ago' in match.groupdict():
            days = int(match.group('days_ago'))
            return (now - timedelta(days=days)).strftime("%Y-%m-%d")
        elif 'hours_ago' in match.groupdict():
            hours = int(match.group('hours_ago'))
            return (now - timedelta(hours=hours)).strftime("%Y-%m-%d")
        elif 'minutes_ago' in match.groupdict():
            minutes = int(match.group('minutes_ago'))
            return (now - timedelta(minutes=minutes)).strftime("%Y-%m-%d")
        return ""

    # 尝试匹配各种日期模式,优先级从高到低
    patterns = [
        # 1. YYYY-MM-DD 完整日期格式 (最高优先级)
        (re.compile(r'(\d{4}-\d{1,2}-\d{1,2})'), lambda m: m.group(1)),
        # 2. 昨天 HH:MM 或 昨天 - 直接在lambda中处理
        (re.compile(r'(?:昨天)(?: (?:\d{1,2}:\d{2}))?'), lambda m: (now - timedelta(days=1)).strftime("%Y-%m-%d")),
        # 3. 前天 HH:MM 或 前天 - 直接在lambda中处理
        (re.compile(r'(?:前天)(?: (?:\d{1,2}:\d{2}))?'), lambda m: (now - timedelta(days=2)).strftime("%Y-%m-%d")),
        # 4. X天前 - 使用命名捕获组并传递给辅助函数
        (re.compile(r'(?P<days_ago>\d+)\s*天前'), lambda m: _convert_relative_time_ago(m)),
        # 5. X小时前 - 使用命名捕获组并传递给辅助函数
        (re.compile(r'(?P<hours_ago>\d+)\s*小时前'), lambda m: _convert_relative_time_ago(m)),
        # 6. X分钟前 - 使用命名捕获组并传递给辅助函数
        (re.compile(r'(?P<minutes_ago>\d+)\s*分钟前'), lambda m: _convert_relative_time_ago(m)),
        # 7. MM-DD - 转换为 YYYY-MM-DD 格式 (最低优先级,在完整日期之后)
        (re.compile(r'(\d{1,2}-\d{1,2})'), lambda m: f"{now.year}-{m.group(1)}")
    ]

    for pattern, converter in patterns:
        match = pattern.search(text_with_date)
        if match:
            return converter(match)

    raise ValueError(f"未能在文本中找到可识别的日期信息: {text_with_date}")

8.采集作者信息

要对作者信息采集,需要先把鼠标悬浮在作者的头像或者名字上。

img
img
img
img
作者名称
img
img
img
img
作者主页链接
img
img

获取网页链接地址,通过分析可知,获取的为相对链接,使用需要在变量前面加入https://www.xiaohongshu.com

img
img
img
img
作者头像链接

同样获取属性src。

img
img
作者简介
img
img
img
img
作者关注数
img
img
img
img
作者粉丝数
img
img
img
img
作者获赞与收藏数
img
img
img
img

9.循环采集

使用无限循环采集笔记直到采集到我们要的数量。

img
img

在循环的外围设置已采集笔记数量,在每次循环相似元素的最后,进行整数加1,并且判断是否达到采集的数量要求,如果达到则退出循环,在无限循环里同理设置判断是否达到采集的数量要求,如果没,则滚动网页,继续采集。

img
img
img
img
img
img

10.同步飞书多维表

到目前已收集:笔记链接,标题,正文,点赞数,评论数,收藏数,笔记类型,笔记封面图,发布时间,作者名称,作者主页链接,作者头像链接,作者简介,作者关注数,作者粉丝数,作者获赞与收藏数,关键词

在数量+1前,新建一个字典。

img
img

为每个增加键值对。

img
img
img
img
img
img

最后对我们的指定表添加记录。

img
img
img
img

11.测试

经过运行可以发现笔记标题作者简介,以及笔记正文等,可以为空,即捕获不到,所以在高级设置把他们等待时间设置为3s以及报错是执行的操作为:忽略异常,继续程序

img
img
img
img

二.完整源码

img
img

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 小红书低粉爆款关键词笔记采集
    • 一.详细教程
      • 1.多维表初始化
      • 2.设置自定义对话框
      • 3.建立多维表连接
      • 4.打开关键词网站
      • 5.按照筛选排序
      • 6.循环获取笔记网站
      • 7.采集笔记信息
      • 8.采集作者信息
      • 9.循环采集
      • 10.同步飞书多维表
      • 11.测试
    • 二.完整源码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档