blog icon indicating copy to clipboard operation
blog copied to clipboard

一个超方便一键将 csdn 博客生成 hexo 源文件的工具

Open flytam opened this issue 5 years ago • 4 comments
trafficstars

这个工具很早之前写的了。新年疫情原因宅家太无聊了,简单写下文档使用说明....

2020.5.01 更新,支持不传递 cookie,此时则为直接爬去 html 解析

2020.2.15 更新:无需下载依赖的可执行程序参考

大家在日常写博客的过程中,肯定会遇到想迁移博客的时候。例如我之前就遇到想把 csdn 博客文章迁移到 hexo 上。hexo 的文章源文件就是一些符合特定格式 markdown 的文章。因此要实现也比较简单,对 csdn 博客首页 进行爬虫,(都是一些一些基础的获取标签之类的内容操作了,不详细讲了),然后生成符合特定格式 markdown 即可。

Quick Start

前提已经安装 nodejs

1、全局安装工具

npm i -g csdnsynchexo

2、获取 csdn 的 cookie(可选)

若不配置 cookie,则爬 html 解析,这种情况是无法获取到标签的。若提供,则使用 api 进行爬取https://blog-console-api.csdn.net/v1/editor/getArticle?id=本人文章id

tips: (这里这么做是因为 csdn 的文章详情api只需要有任意的已登陆的合法 cookie 就能够根据文章 id 拉取信息了。csdn 的模拟登录破解不出来 T T)

2.1 登录后,点击将这个 url复制下面这段的 cookie 到配置文件或者指定运行。 image

3、配置文件

在当前目录下新建config.json,内容如下

tips: json 记得去掉注释。就是//后面的内容

// config.json
{
  "csdn": "https://blog.csdn.net/flytam", // 要爬取的csdn博客地址
  "output": "./example", // 输出hexo文章源markdown的目录
  "cookie": "xxxx" // 可选,若提供cookie,只能爬取自己的文章
}

4、执行生成

hsync --config ./config.json

5、结果

可以看到,我们的 hexo 源文件就生成成功了

码字不易。本工具仓库地址。如果觉得有用,你的 star 是我最大的动力 - -

flytam avatar Jan 28 '20 10:01 flytam

title中有冒号,导入后 初始化会报错~ YAMLException: incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line at line 1, column 18:

kcoderk avatar Sep 07 '20 08:09 kcoderk

title中有冒号,导入后 初始化会报错~ YAMLException: incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line at line 1, column 18:

能提供下爬的文章链接吗?顺便到https://github.com/flytam/CsdnSyncHexo/issues 这边帮忙提个issuse。谢谢!

flytam avatar Sep 08 '20 08:09 flytam

对于那种忘记密码,无法登陆csdn的,这种方式好像不行。因为需要登陆以后用cookie。只能按照xml解析单个博客实现复刻。

xros avatar May 18 '22 17:05 xros

对于那种忘记密码,无法登陆csdn的,这种方式好像不行。因为需要登陆以后用cookie。只能按照xml解析单个博客实现复刻。

@xros 任意cookie就行。忘记密码无法登录注册新账号就可以

flytam avatar May 19 '22 00:05 flytam