推广 热搜: 百度  搜索引擎  企业  使用  可以  选择  page 

使用 Python 构建小红书用户动态监控系统

   日期:2025-01-31     作者:bot8m    caijiyuan  
核心提示:"今天她又发新笔记了吗?" "糟了,她更新了我却没能第一时间看到..." "为什么别人都能秒回评论,我却总是来晚

"今天她又发新笔记了吗?"

"糟了,她更新了我却没能第一时间看到..."

"为什么别人都能秒回评论,我却总是来晚一步..."

"为什么我总是错过她的新动态..."

相信很多同学都有过这样的经历。作为一名资深舔狗,一直秉承着 “舔得狗中狗,方为人上人” 的原则,必须 24 小时待命,不能错过女神的任何动态,但同时作为一名资深软件工程师,与其整天盯着手机刷新,不如用技术来解决这个问题! 今天,我们就来构建一个专属得“女神小红书动态监控系统”,让你永远不错过她的每一条动态,永远第一时间向她嘘寒问暖,做她最忠实的粉丝(舔狗)!

作为一名合格的舔狗,我们需要

  • 实时监控女神的小红书最新笔记
  • 第一时间获得更新提醒
  • 快人一步送上点赞或者评论

通过这个项目,你将获得

  • 女神更新笔记时,第一时间收到通知
  • 展现你的技术实力
  • 提升你的 Python 编程能力
  • 成为女神最忠实的粉丝(舔狗

为了实现这个浪漫的需求,我们需要

  • 使用 Python + xhs 库获取女神的最新笔记
  • 通过企业微信接收消息通知
  • 使用 SQLite 存储笔记历史数据

确定好大致技术方案后,就让我们开始这段浪漫的编程之旅吧!

首先让我们创建一个新的项目目录并进入该目录,然后创建一个虚拟环境,并安装所需的依赖库。

 

bash

代码解读

复制代码

实现配置模块

创建 config.py 文件, 用来配置小红书,企业微信通知以及监控相关的可配置信息。

 

python

代码解读

复制代码

实现企业微信通知模块

创建 wecom.py 文件, 用来实现企业微信通知功能。

 

python

代码解读

复制代码

  • 我们创建一个  类, 用来实现企业微信通知功能。
  • 根据企业微信相关文档(developer.work.weixin.qq.com/document/pa…, 我们使用企业微信的 message API 来发送应用消息实现通知。这需要一些企业微信的配置信息, 包括企业ID, 应用ID, 应用Secret。我们通过配置模块存放这些信息,并将这些信息作为  类的  方法的参数。
  • 发送应用消息需要获取访问令牌(access_token), 我们通过  方法来获取。
  • 最后,我们通过  方法来发送文本消息。

实现数据库模块

创建 db.py 文件, 用来实现数据库相关功能。

 

python

代码解读

复制代码

  • 我们创建一个  类, 用来实现数据库相关功能。
  • 通过  方法来初始化数据库表, 如果 notes 数据库表不存在, 则创建它。
  • 通过  方法来添加笔记记录。如果笔记已存在, 则返回 False, 否则将笔记插入到数据库表并返回 True
    • 由于该监控系统主要是监控用户是否有新笔记,对笔记的具体内容并不是很关心, 所以这里我们只保存笔记的 id, 用户 id, 标题, 发现时间以及笔记类型。
    • 之所以将笔记持久化到数据库,也只是为了去重,防止重复发送通知。

实现工具模块

创建 utils.py 文件, 用来实现程序所需的工具函数。

 

python

代码解读

复制代码

  • 这里我们实现了一个  方法,用来生成小红书请求的签名。
  • 该方法通过 playwright 库来模拟浏览器行为,获取小红书请求的签名,并返回签名信息。而不是直接逆向小红书请求的签名算法,因为小红书请求的签名算法可能会随时更新,导致我们之前逆向的代码失效。
  • 如果签名获取失败,则抛出异常,并重试 10 次。

实现监控主程序

创建 monitor.py 文件, 用来实现监控主程序。

 

python

代码解读

复制代码

  • 首先我们定义一个  函数,用来启动监控。 函数中我们通过  类来初始化监控对象,并传入配置模块中的小红书 cookie, 企业微信配置信息以及监控配置信息。
  • 然后我们通过  方法来监控女神的最新笔记。
  •  类中我们一共需要实现 5 个方法, 分别是
    •  方法
    •  方法
    •  方法
    •  方法
    •  方法

XHSMonitor 类详解

 方法

 方法用来初始化监控对象的属性, 我们需要在这个方法中初始化  对象,  对象以及  对象,并赋值给监控对象对应的属性。同时,我们还需要初始化一个错误计数器,用来记录 API 请求失败的次数。 其中在初始化  对象时,我们传入了 cookie 和 sign 参数。cookie 是我们在配置模块中配置的小红书 cookie,sign 则是我们在 utils 模块中实现的  方法, 用来生成小红书请求的签名。

 方法

 方法的主要功能是获取女神的最新笔记。内部通过  的  方法来获取小红书用户笔记。如果获取失败,则将错误信息记录到错误计数器中,如果错误计数器达到最大重试次数,则调用  方法发送错误通知并退出程序。当然,如果获取成功,则将错误计数器清零。由于大多数错误是触发了小红书的反爬虫机制,所以这里我们也会通过  方法来等待一段时间,然后再重试。

 方法

 方法的主要功能是发送错误通知到企业微信。核心逻辑也很简单,就是将错误信息和当前时间拼接成一条文本消息,然后调用  的  方法发送。

 方法

 方法用来监控女神的最新笔记。通过 while 循环不断调用  方法获取女神的最新笔记,然后通过  方法判断笔记是否已存在,如果笔记不存在,则说明是新笔记,则调用  方法发送笔记通知到企业微信,告知我们女神发布了新笔记,我们就可以第一时间去点赞或者评论了。

 方法

 方法和  类似。将笔记的标题, 链接, 类型, 监控时间以及用户名拼接成一条文本消息,然后调用  的  方法发送。

以上,我们的核心代码已经实现完毕,接下来我们就可以运行我们的监控程序,测试程序是否正常,行为是否符合预期。

在正式运行之前,我们需要先配置好小红书 cookie, 企业微信配置信息以及监控配置信息。

获取小红书 cookie

我们登录小红书 Web 端,打开开发者工具,在 Network 标签下找到请求头中包含 cookie(a1, web_session 和 webId)的请求,复制请求头中的 cookie 信息,然后粘贴到配置模块中的 XHS_ConFIG 中。 

获取企业微信配置信息

登录企业微信后台,创建一个企业或者加入一个企业,获取企业的 CORPID,然后在应用管理中创建一个应用,获取应用的 AGENTID 和 SECRET,然后粘贴到配置模块中的 WECOM_ConFIG 中。 

 

获取女神小红书用户 ID

通过小红书 Web 端,访问女神的笔记主页,浏览器地址栏 /user/profile/xxx 中的 xxx 就是小红书用户 ID。 

本地运行

当完成以上配置后,本地运行很简单,只需要在终端中执行以下命令即可

 

bash

代码解读

复制代码

本文地址:http://ww.kub2b.com/tnews/5895.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类生活信息

文章列表
相关文章
最新动态
推荐图文
生活信息
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号