YUJUNWEIF / GCCL

:eyes:为CSDN博客分类生成目录导航列表。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Generate CSDN Category List(GCCL)

Codacy Badge Build Status codecov BCH compliance GitHub LICENSE GitHub release (latest by date including pre-releases)

说明

为CSDN博客分类生成目录导航列表。虽然CSDN的分类专栏支持二级分类,但是到目前为止(2019-9-30)它的层级关系并不密切,或者说是没有关系,所以这里就没有进行分层,仅仅是针对分类进行索引。

样式参考了这篇博客:https://blog.csdn.net/SnailMann/article/details/88392514,分类设置为三级目录(如果需要二级目录,可以自行添加),分类里面的博客设置成无序列表:

### <font color ="green">Java基础</font>

- [命令行运行javac,报错: 编码 GBK 的不可映射字符 (0x9C)](https://blog.csdn.net/weixin_41287260/article/details/100177044)

思路

  1. 先爬取CSDN博主主页的(非空的)分类专栏的信息:分类专栏的名称、网址、数量。
  2. 到每个分类专栏爬取博客列表信息:博客的标题、网址。
  3. 将爬取到的博客信息按照特定的格式输出到文件中。

注:

  • 页面元素分析可见:页面元素分析
  • 因为我将分类信息和博客信息都存放在ArrayList中,所以最后生成的目录是有序的,都是按照分类专栏和每个专栏的博客的顺序进行排列的。
    • 分类专栏的排列顺序:可到分类专栏管理处调整分类专栏的排列顺序。
    • 分类专栏中的博客顺序:不得不吐槽的是:这个顺序默认是随机的,虽然很多人都想CSDN工作人员反映这个问题,但是不知道为啥就是不改了。修改:进到每个分类专栏,点击右上角的管理博客-->批量操作-->排序-->顺序建议使用按创建时间降序

效果

请看生成的文件 CSDN博客目录-2019-10-13.14-15-36.md,或者参考我的CSDN博客目录:【目录】博客目录 | 先点这里

测试

对多种情况进行了测试,得出了对应的程序运行时间,详见:程序测试

使用

简单使用

下载最新的发布包:GitHub release (latest by date including pre-releases)

提供脚本,详见:运行GCCL工具的脚本,可直接运行该工具。

然后输入用户名,稍等片刻,即可在当前目录生成CSDN博客目录.md文件,复制到CSDN的markdown编辑器即可,当然你也可以添加一些说明。

我的博客:(2019-10-14)有97篇原创,含转发共153篇博客,26个非空分类专栏,分类专栏下博客共251篇。相当于原创的当于3倍(因为每篇博客可以选三个分类专栏)。用时在20s~50s之间(与网络状况有关)。

示范如下(点击左边三角形展开):
-------------------------------------------------------------------------------
-----------------------欢迎使用CSDN博客目录生成工具(GCCL)----------------------
                          _____   _____  _____  _
                         / ____| / ____|/ ____|| |
                        | |  __ | |    | |     | |
                        | | |_ || |    | |     | |
                        | |__| || |____| |____ | |____
                         \_____| \_____|\_____||______|
.
该工具可为您生成“CSDN博客导航目录”,使用前请阅读README,然后按照提示进行操作。
如果在使用过程中遇到问题,可到 https://github.com/yansheng836/GCCL/issues 提问。
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
!!!!!!!!!!!!!!!!!声明:!!!!!!!!!!!!!!!!!!!
该工具仅供学习交流使用,请勿用于商业用途;该工具是完全免费的,不进行任何保证,
版权归 sheng.yan836@gmail.com 所有。
-------------------------------------------------------------------------------
.
__          __  _                          _ 
\ \        / / | |                        | |
 \ \  /\  / /__| | ___ ___  _ __ ___   ___| |
  \ \/  \/ / _ \ |/ __/ _ \| '_ ` _ \ / _ \ |
   \  /\  /  __/ | (_| (_) | | | | | |  __/_|
    \/  \/ \___|_|\___\___/|_| |_| |_|\___(_)
                                             
请输入用户名:weixin_41287260


weixin_41287260,即将为您生成CSDN博客目录。

1.正在获取分类专栏的信息,请稍候……
----所有分类专栏一共有:251篇博客(包含重复的)。
----获取分类专栏信息成功,共有26个非空的分类专栏。
2.正在获取每个分类专栏内的博客信息……
----获取分类专栏内的博客信息成功!
3.正在生成该用户的‘博客导航分类目录’文件……
----生成‘博客导航分类目录’文件成功!!
文件路径为:CSDN博客目录-2019-10-14.21-54-19.md

**感谢您使用该工具,此次用时:41.143秒,期待下一次的重逢!**
  _____                 _ _                _ 
 / ____|               | | |              | |
| |  __  ___   ___   __| | |__  _   _  ___| |
| | |_ |/ _ \ / _ \ / _` | '_ \| | | |/ _ \ |
| |__| | (_) | (_) | (_| | |_) | |_| |  __/_|
 \_____|\___/ \___/ \__,_|_.__/ \__, |\___(_)
                                 __/ |       
                                |___/        

效果图:效果图

开发

  1. git clone https://github.com/yansheng836/GCCL.git
  2. 以Maven形式导入IDE。
  3. 运行/GCCL/src/main/java/xyz/yansheng/main下面的App主程序。
  4. 或者按需开发自己的程序。

Limitation

  • 目前只能爬取没有自定义博客域名的博客,博客主页网址形式为:https: //blog.csdn.net/ + username,如我的CSDN用户名为weixin_41287260,我的博客主页网址为:https://blog.csdn.net/weixin_41287260
  • 如果选择的博客主题在侧边栏没有博客分类专栏,那么该工具无效(如这位博主的:https://blog.csdn.net/lingshengxueyuan)。
  • 如果某个分类专栏没有设置在前台显示,则不能爬取该分类专栏的信息。(注:如果没有到 分类专栏管理处 进行设置,新建后默认为显示/可见。)
  • 前面已经提到了分类专栏可能有分级的情况(一级和二级),但是因为关系不紧密,该工具没有做这方面的处理。进行过测试,发现应该是可以爬取二级分类的。

CHANGELOG

详见:CHANGELOG.md

License

This work is licensed under a MIT.

Declaration

  • 本项目仅用于学习交流使用,禁止进行商业目的的开发、发布、运营等。数据所有权归 http://www.csdn.net/ 所有。

About

:eyes:为CSDN博客分类生成目录导航列表。

License:MIT License


Languages

Language:Java 89.4%Language:Batchfile 6.4%Language:Shell 4.2%