美文网首页
轻松实现简书文章快速搬家

轻松实现简书文章快速搬家

作者: Kernholz | 来源:发表于2022-02-27 19:55 被阅读0次

今天整理简书文章的时候,发现我的默认文集已经有一千多篇文章了,管理起来很不方便,于是决定按照年份重新归档。但是,一篇一篇手动将文章移动位置实在是太麻烦了。有没有一种方法能够方便快速地把指定的简书文章移动到同一个文集中呢?经过一番摸索,我用下面的代码成功实现了简书文章的快速搬家,在此与大家分享。

整个过程包括以下步骤:

编辑代码

首先将文末的代码复制到任意文本编辑器中,然后按照以下各步骤中的提示填入对应的内容。注意在修改代码时,只要替换对应的中文文字即可,不要改动其他符号。

获取个人的用户ID

打开简书网页版,进入个人主页,此时的域名https://www.jianshu.com/u/xxxxxxxxxx(见浏览器地址栏)中最后一串字符就是你的用户ID。把这一ID填入代码中对应位置。

获取目标笔记本的ID

打开简书网页版,进入写文章界面,在你希望将文章移入的文集中随便打开一篇文章,此时的域名https://www.jianshu.com/writer#/notebooks/xxxxxxxxx/notes/yyyyyyyyxxxxxxxx的部分就是你的笔记本ID。把这一ID填入代码中对应位置。

使用关键词

对于普通用户,可以直接将关键词输入到下面代码中的对应位置;对于有一定技术能力的用户,可以自行定制正则表达式,或修改代码实现更高级的过滤功能。

执行代码

打开简书网页版的任意页面(确保处于已登陆状态),然后打开浏览器的开发者工具页面(以Chrome为例,Windows和Linux下的快捷键为F12Ctrl+Shift+I,Mac下的快捷键为Cmd+Option+I),如下图所示:

开发者工具页面

选择“控制台”(英文则为"Console")标签,此时会有一个代码输入框。将刚才修改好的代码粘贴到这个框中,敲下回车即可。程序会首先获取你的文章列表,之后根据你设定的关键词过滤出所有标题含有这一关键词的文章,将它们统一移动到你指定的笔记本中。程序执行过程中会在控制台中输出日志信息,方便查看当前执行进度。注意在程序运行过程中不要关闭或刷新当前页面,否则将导致程序终止运行。

说明

  • 文章搬家时,默认按照首次发表时间由早到晚排序,这样搬家后文集中的文章会是由新到旧的顺序。
  • 有一定技术能力的用户,可以根据下面的代码进一步修改,实现定制化的搬家功能。

附:实现文章搬家所用到的代码

const USER_ID = "这里输入你的用户ID";
const TARGET_NOTEBOOK_ID = "这里输入目标笔记本的ID";
const MY_FILTER = /这里输入你的关键词/;

async function moveNote(note, targetNotebookId) {
  console.log(`开始移动笔记《${note.data.title}》`);

  try {
    const resp = await fetch(`https://www.jianshu.com/author/notes/${note.data.id}/move`, {
      "headers": {
        "accept": "application/json",
        "accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
        "content-type": "application/json; charset=UTF-8",
        "sec-fetch-dest": "empty",
        "sec-fetch-mode": "cors",
        "sec-fetch-site": "same-origin"
      },
      "referrer": "https://www.jianshu.com/writer",
      "referrerPolicy": "strict-origin-when-cross-origin",
      "body": `{\"notebook_id\": ${targetNotebookId}}`,
      "method": "POST",
      "mode": "cors",
      "credentials": "include"
    });

    if (resp.status == 204) {
      console.log(`笔记《${note.data.title}》移动成功`);
    } else {
      console.error(`笔记《${note.data.title}》移动失败,请手动重试`);
    }
  } catch (e) {
    console.error(`笔记《${note.data.title}》移动失败,请手动重试`);
  }
}

async function queryNotes(userId) {
  let page = 1;
  const notes = [];
  while (true) {
    const body = await fetch(`https://www.jianshu.com/asimov/users/slug/${userId}/public_notes?page=${page}`);
    const json = await body.json();
    if (json.length == 0) {
      break;
    }
    notes.push(...json.map(it => it.object));
    console.log(`正在获取笔记列表,本次获取${json.length}条,累计获取${notes.length}条`);
    page++;
  }
  return notes;
}

async function moveNotesByFilter(notes, filter, targetNotebookId) {
  for (let note of notes) {
    if (note.data.title.match(filter) != null) {
      await moveNote(note, targetNotebookId);
    }
  }
}

const notes = await queryNotes(USER_ID);
notes.sort((a, b) => a.data.first_shared_at < b.data.first_shared_at ? -1 : 1);
await moveNotesByFilter(notes, MY_FILTER, TARGET_NOTEBOOK_ID);

相关文章

  • 轻松实现简书文章快速搬家

    今天整理简书文章的时候,发现我的默认文集已经有一千多篇文章了,管理起来很不方便,于是决定按照年份重新归档。但是,一...

  • 小便条

    我已经搬家到LOFTER啦! 因为在简书并没有很多一起讨论的朋友,所以决定搬家,以后就不在简书发布文章了。 欢迎大...

  • 简书文章快速导航

    复盘自己在简书上的写作之路,除了007有关的系列文章之外就有一些有关区块链相关的文章,虽然说是一些入门的文章,但是...

  • 简书搬家

    不完美的勇气 作者 orial 2017.06.12 15:41* 字数 300 阅读 28评论 0喜欢 1 编辑...

  • 搬家简书

    很早以前会在iteye博客记录一下自己的心得和工作记录,最近想重新开始做记录时发现账号找不到了!哎~折腾一番找回密...

  • 朋友圈天天都有谈管理,可是我们只是朋友

    所以搬家简书,哈哈

  • CSDN转移到简书

    以前的博客笔记:CSDN 简书的文章布局质量都更好。搬家到简书,总结开发过程中的经验教训,写出优质的文章,也是对自...

  • 简书 7 日热门 iOS 12 捷径

    快速查看简书七日热门文章~ 捷径下载链接

  • 简书

    博客搬家至此。谢谢简书!

  • 试试好用不

    想从csdn搬家到简书

网友评论

      本文标题:轻松实现简书文章快速搬家

      本文链接:https://www.haomeiwen.com/subject/gwnhrrtx.html