首页 > 其他分享 >通过AI大模型现实小红书笔记克隆以及自动化发布

通过AI大模型现实小红书笔记克隆以及自动化发布

时间:2024-09-16 23:21:55浏览次数:11  
标签:const 克隆 title AI await response 小红书 page desc

文章目录


前言

对于文案小白来说,通过大模型可以轻松帮我们生成各种风格的文案,比如小红书风格的超萌文案。只需要简单几步操作,就能得到让你惊艳的结果。通过自动化的操作,还可以减少内容维护的重复性劳动,极大提高工作效率。


一、实现思路

通过playwright登录浏览相关笔记,选择需要克隆的笔记,调用扣子的工作流API生成新的文案,选择文案后可以一键自动发布笔记。

二、实现步骤

1.引入库

const fs = require('node:fs');
import { firefox } from 'playwright';
import axios from 'axios';

fs:用于文件系统操作,主要用于读取和写入文件。
playwright:用于自动化浏览器操作,这里使用了其中的firefox浏览器驱动。
axios:用于发送 HTTP 请求。

2.自动登录

  async login() {
    if (!this.currentPage) {
      const storageStatePath = './storageState/xiaohongshu.json';
      let storageState = {};
      if (fs.existsSync(storageStatePath)) {
        storageState = JSON.parse(fs.readFileSync(storageStatePath, 'utf-8'));
      }
      const browser = await firefox.launch({
        headless: false,
      }); // Or 'firefox' or 'webkit'.
      const context = await browser.newContext({ storageState: storageState });
      context.setDefaultTimeout(60 * 1000);
      const page = await context.newPage();
      await page.goto('https://www.xiaohongshu.com/login').catch((error) => {
        console.error(error);
      });
      await page.waitForURL(/https:\/\/www.xiaohongshu.com\/explore.*/);
      await context.storageState({ path: storageStatePath });
      //await browser.close();
      console.log('waitForURL');
      this.currentPage = page;
      page.on('close', (data) => {
        console.log('page close');
        this.currentPage = undefined;
      });
      page.on('response', (response) => {
        if (
          response
            .url()
            .includes('https://edith.xiaohongshu.com/api/sns/web/v1/feed')
        ) {
          response.json().then(async (data: any) => {
            console.log(data.data.items);
            this.currentNote = data.data.items[0];
          });
        }
      });
      return { open: true };
    } else {
      return this.currentNote;
    }
  }

通过storageStatePath存储登录信息便于下次自动登录。page.on(‘response’, (response) => {})监听当前浏览的笔记内容。

3.生成笔记

  async clone() {
    const locatorTitle = await this.currentPage.locator('#detail-title');
    const title = await locatorTitle.innerText();

    const locatorDesc = await this.currentPage.locator('#detail-desc');
    const desc = await locatorDesc.innerText();
    console.log('content', title, desc);
    const response = await axios.post(
      'https://api.coze.cn/v1/workflow/run',
      {
        workflow_id: 'xxx',
        parameters: {
          titile: title,
          desc: desc,
        },
      },
      {
        withCredentials: true, // 这会携带 cookie
        headers: {
          'Content-Type': 'application/json',
          Authorization: 'Bearer xxx',
        },
      },
    );
    //console.log(response);
    const docs = JSON.parse(response.data.data);
    return docs;
  }

使用axios.post向https://api.coze.cn/v1/workflow/run发送 POST 请求,获取大模型生成的内容。携带工作流 ID 和参数(标题和描述),请求中包含的授权信息可以通过coze的后台获取。

4.发布笔记

async upload(note) {
    if (this.currentPage) {
      const page = this.currentPage;
      await page.goto(
        'https://creator.xiaohongshu.com/publish/publish?source=official',
      );
      const uploadImgTab = page.getByText('上传图文');
      await uploadImgTab.waitFor({ state: 'visible', timeout: 20000 });
      await uploadImgTab.click();
      await page.setInputFiles(
        'input.upload-input','',
      );

      const title = page.getByPlaceholder('填写标题会有更多赞哦~');
      await title.waitFor({ state: 'visible', timeout: 20000 });
      await title.fill(note.title);

      const desc = page.getByPlaceholder(
        '在这里输入正文描述,真诚有价值的分享予人温暖',
      );
      await desc.waitFor({ state: 'visible', timeout: 20000 });
      await desc.fill(note.desc);

      const publish = page.locator('button.publishBtn');
      await publish.waitFor({ state: 'visible', timeout: 20000 });
      await publish.click({ delay: 200 });
      return { status: 'ok' };
    }
  }

导航到小红书的发布页面https://creator.xiaohongshu.com/publish/publish?source=official。
等待并点击 “上传图文” 按钮。通过page.setInputFiles方法上传图片文件,这里指定了图片文件的本地路径。获取并填写标题输入框,使用note.title作为标题内容。获取并填写描述输入框,使用note.desc作为描述内容。获取并点击发布按钮,这里有一个 200 毫秒的延迟来确保操作的稳定性。


三、界面演示

在这里插入图片描述

总结

本文展示了如何使用playwright和axios进行自动化操作和网络请求,实现自动化登录、内容获取、大模型内容生成,内容上传等功能。欢迎添加vx:sas-soft沟通交流。

标签:const,克隆,title,AI,await,response,小红书,page,desc
From: https://blog.csdn.net/sashimi1984xp1/article/details/142307206

相关文章

  • Prompt Engineering实战 AI老兵的15条经验与建议
    Author:Jason豪 编写提示时应清晰准确地传达信息。能够明确描述任务和概念至关重要。要愿意快速迭代,连续多次向模型发送提示并检测结果。优秀的提示工程师能够持续对已待优化prompt反复改进。在设计提示时要考虑边界情况和不寻常的场景。思考你的提示在非典型情况下可能会如......
  • 红抖AI助手v2.5.0热点文案一键创作Ai工具,小红书,抖音爆款仿写
    摘要本文介绍了一款适用于Android端的自媒体内容提取工具,该工具支持从多个流行平台提取内容,并具备批量创作功能,旨在提高自媒体创作效率。1.工具概述自媒体批量创作内容提取工具是一款专为自媒体创作者设计的辅助工具,支持从小红书、抖音、微博、哔哩哔哩等平台提取内容,......
  • 红抖AI助手v2.5.0热点文案一键创作Ai工具,小红书,抖音爆款仿写
    摘要本文介绍了一款适用于Android端的自媒体内容提取工具,该工具支持从多个流行平台提取内容,并具备批量创作功能,旨在提高自媒体创作效率。1.工具概述自媒体批量创作内容提取工具是一款专为自媒体创作者设计的辅助工具,支持从小红书、抖音、微博、哔哩哔哩等平台提取内容,......
  • 如何学习JAIN-SLEE
    要系统地学习JAIN-SLEE(JavaAPIforIntegratedNetworks–ServiceLogicExecutionEnvironment),你需要从基础概念到高级应用逐步深入学习。以下是详细的入门学习路径和顺序,涵盖必要的知识点、学习顺序和步骤,帮助你快速掌握JAIN-SLEE。1.掌握基础知识JAIN-SLEE是......
  • AI视频批量自动剪辑软件
     小咖批量剪辑助手是一款视频批量自动剪辑软件,具有智能化、批量化、操作简单等特点。该软件适用于自动化处理和生产视频,旨在帮助用户实现批量化生产产品推广视频的功能。三、安装与配置安装步骤:下载程序压缩包:访问官方网站或指定下载地址,下载小咖批量剪辑助手程序压缩......
  • JAIN-SLEE 架构及如何运作
    JAIN-SLEE(JavaAPIforIntegratedNetworks-ServiceLogicExecutionEnvironment)是一种架构,用于构建实时电信应用程序,如电话呼叫控制、短信发送、会议电话等。这类应用程序需要能够快速响应来自用户或系统的事件,保证通信系统的高效运作。为了更容易理解JAIN-SLEE的架......
  • 红抖AI助手v2.5.0热点文案一键创作Ai工具,小红书,抖音爆款仿写
    摘要本文介绍了一款适用于Android端的自媒体内容提取工具,该工具支持从多个流行平台提取内容,并具备批量创作功能,旨在提高自媒体创作效率。1.工具概述自媒体批量创作内容提取工具是一款专为自媒体创作者设计的辅助工具,支持从小红书、抖音、微博、哔哩哔哩等平台提取内容,......
  • AI视频批量自动剪辑软件
     小咖批量剪辑助手是一款视频批量自动剪辑软件,具有智能化、批量化、操作简单等特点。该软件适用于自动化处理和生产视频,旨在帮助用户实现批量化生产产品推广视频的功能。三、安装与配置安装步骤:下载程序压缩包:访问官方网站或指定下载地址,下载小咖批量剪辑助手程序压缩......
  • 红抖AI助手v2.5.0热点文案一键创作Ai工具,小红书,抖音爆款仿写
    摘要本文介绍了一款适用于Android端的自媒体内容提取工具,该工具支持从多个流行平台提取内容,并具备批量创作功能,旨在提高自媒体创作效率。1.工具概述自媒体批量创作内容提取工具是一款专为自媒体创作者设计的辅助工具,支持从小红书、抖音、微博、哔哩哔哩等平台提取内容,......
  • 一键AI去除视频水印和字幕!
     我们做网创的,多多少少会去下载很多视频素材,但很多素材自己觉得非常好,但有那该死的水印和字幕就让人非常不爽,要么在剪辑的时候放大把字幕拉出屏幕外,又或者是用黑框该掉字幕,这着实影响美观!有什么办法可以直接去掉字幕和水印吗?答案是有的!今天就给大家分享这个神器:VideoSubti......