本篇博文主要讲述如何自动新建图书分类文件夹。

数据来源于中国图书馆分类法。

技术:jsoup爬虫

处理流程:

1.抓取网站数据获取图书种类树。

2.打印目录结构

3.创建目录结构

中国图书馆分类法

代码如下:

 package com.gugu.book;import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;public class MDBookDir {// 种子地址private static final String url = "http://www.ztflh.com/?c=33314";// 分隔符private static String sepa = java.io.File.separator;private static final String basePath = "E:"+sepa+"book"; // 如果使用转义符CMD不认// 每个节点idstatic int id = 0;// 所有图书种类的列表static List<BookTypeTree> bookTreeList = new ArrayList<BookTypeTree>();public static void main(String[] args) throws IOException {// 获取图书类型树数据getBookTypeInfo(url, 0);// 打印内容,可以粘贴进bat批量执行printlnBookList();// 创建树结构mkdirBookList();}private static void mkdirBookList() {for (BookTypeTree bookTypeNode: bookTreeList) {File file = new File(bookTypeNode.path);file.mkdirs();}}public static void getBookTypeInfo(String url, int parentId) throws IOException{Document document = Jsoup.connect(url).timeout(3000000).get();Element listE = document.getElementById("list"); // 获取图书种类列表if(null == listE){// 到叶子节点,结束本次递归return;}Elements lis = listE.getElementsByTag("li");//获取所有对象图书种类for (Element li : lis) {id += 1;// 输出当前路径String name = li.text();String path = getPath(parentId) + sepa + name;BookTypeTree bookNode = new BookTypeTree(id, parentId, name, path);bookTreeList.add(bookNode);// 获取子种类urlString urlAddress = li.select("a").first().attr("href");// 递归子种类getBookTypeInfo(urlAddress, id);}}// 打印显示列表static void printlnBookList(){for (BookTypeTree bookTypeNode: bookTreeList) {
//            System.out.println(bookTypeNode.toString());System.out.println("MD " + bookTypeNode.path);}}static String getPath(int id){if(id == 0){return basePath;}for (BookTypeTree bookTypeNode: bookTreeList) {if(id == bookTypeNode.id){return bookTypeNode.path;}}return null;} }
class BookTypeTree{int id;int parentId;String name;String path;public BookTypeTree(int id, int parentId, String name, String path) {this.id=id;this.parentId=parentId;this.name=name;this.path=path;}@Overridepublic String toString() {return "BookTypeTree [id=" + id + ", parentId=" + parentId + ", name=" + name + ", path=" + path + "]";}}

创建目录

图书整理系统(1)-创建图书分类文件夹相关推荐

  1. java javawebjsp图书借阅系统(jsp图书管理系统 )jsp书籍借阅系统

    java javawebjsp图书借阅系统(jsp图书管理系统 )jsp书籍借阅系统 protected void doGet(HttpServletRequest req, HttpServletR ...

  2. JSP图书销售系统JSP网上书店商城JSP网上书店JSP图书在线销售系统JSP二手图书商城系统

    JSP图书销售系统JSP网上书店商城JSP网上书店JSP图书在线销售系统JSP二手图书商城系统 protected void doGet(HttpServletRequest req, HttpSer ...

  3. linux如何生成tar文件内容,在Linux系统中创建tar.gz文件的方法及实例讲解

    本文介绍在Linux系统中创建tar.gz文件的方法,及实例讲解. 介绍 tar存档是一个文件,用于存储其他文件的集合,包括有关它们的信息,例如所有权.权限和时间戳. 在Linux操作系统中,可以使用 ...

  4. 操作系统:Win10系统下LocalNow和Roaming文件夹介绍

    Win10操作系统下AppData文件夹包括以下子文件夹 - 漫游,本地和本地. 几乎每个在Win10 PC上安装的程序都会在AppData文件夹中创建自己的文件夹,并将其所有相关信息存储在其中.Ap ...

  5. android 创建隐藏文件夹吗,Android创建隐藏文件可能文件夹

    Android创建隐藏文件或者文件夹 android创建隐藏文件或者文件夹,其实只要在文件名或者文件夹名字前加一个点号即可. 隐藏文件(夹)可直接进行读写. 如果需要去除隐藏,那就是重命名,去除点即可 ...

  6. 《Python Cookbook 3rd》笔记(5.19):创建临时文件和文件夹

    创建临时文件和文件夹 问题 你需要在程序执行时创建一个临时文件或目录,并希望使用完之后可以自动销毁掉. 解法 tempfile 模块中有很多的函数可以完成这任务.为了创建一个匿名的临时文件,可以使用 ...

  7. 远程服务器创建文件,ftp创建远程服务器文件夹

    ftp创建远程服务器文件夹 内容精选 换一换 在本地主机和Windows弹性云服务器上分别安装QQ.exe等工具进行数据传输.使用远程桌面连接mstsc方式进行数据传输.该方式不支持断点续传,可能存在 ...

  8. mkdir 创建随机序号文件夹_使用PowerShell批量新建文件夹的方法

    系统推荐:[GHOST WIN10 X64] 现在很多的电脑都是使用Win10,如果我们在整理文档需要新建多个文件夹进行归类,不如使用Win10系统中自带的PowerShell,来批量新建文件夹,具体 ...

  9. Windows系统下实现两个文件夹自动同步问题(mklink命令的使用)

    Windows系统下实现两个文件夹自动同步问题(mklink命令的使用) 例:E:\My OneNote文件夹同步到OneDrive中 路径1:C:\Users\XXX\OneDrive\My One ...

  10. linux云同步文件夹,在Linux系统上备份Dropbox同步文件夹的方法

    本文介绍在Linux系统上备份Dropbox同步文件夹的方法,确保Dropbox文件夹中的数据安全的一种好方法是创建本地备份.在Linux上,有很多不同的方法可以创建备份,因此我们将介绍简单实用的方法 ...

最新文章

  1. Objective C 链式调用
  2. implementation ‘com.zxy.android:recovery:
  3. R语言--查看数据类型+类型判断
  4. 全志 强制隐藏导航栏状态栏 Patch
  5. 每日一笑 | 史上最贴心的骗子
  6. Fantasia (Tarjan+树形DP)
  7. 计划会议要开始了,产品负责人却没来…
  8. 都是宝宝:北京孩子3成不玩电子游戏睡眠状况最好 江苏孩子起得最早
  9. Downloading SRA data using command line utilities
  10. 我所见过的最简短、最灵活的javascript日期转字符串工具函数
  11. 微信公众号 菜单 { “errcode“: 47001, “errmsg“: “data format error rid: 61b36b ...“}
  12. 双稳态一键开关机电路
  13. 地理极客的Planet卫星影像指南
  14. 2016最新iOS开发证书配置和安装的详细步骤攻略
  15. 如何更新谷歌chrome浏览器
  16. python如何实现图像中特定颜色的种类识别及特定颜色的占比代码
  17. SpringWebMVC到底是如何工作的?
  18. SSM岭师旧书回收系统毕业设计源码041921
  19. Chrome OS 旅程的下一步
  20. 工程经济—价值工程在工程建设中的应用

热门文章

  1. mysql sock golang_golang socket连接复用 - smux
  2. 计算机高级计算,windows系统自带计算器高级用法分享
  3. 微信开发者工具 文件删除操作 二次确认框 设置
  4. 使用BeautifulSoup爬取百度图片
  5. 层次聚类python实现
  6. spring-IOC注解部分笔记整理(观看IT黑马视频自学)
  7. Elasticsearch教程(35) ik中文分词器+pinyin拼音分词器+同义词
  8. 求职面试过程中都需要注意哪些
  9. matlab 指定ccs编译器,在CCS5.5中导入CCS3.3工程——指定编译器和修改prj文件
  10. 怎么批量修改图片尺寸大小?