图书整理系统(1)-创建图书分类文件夹
本篇博文主要讲述如何自动新建图书分类文件夹。
数据来源于中国图书馆分类法。
技术: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)-创建图书分类文件夹相关推荐
- java javawebjsp图书借阅系统(jsp图书管理系统 )jsp书籍借阅系统
java javawebjsp图书借阅系统(jsp图书管理系统 )jsp书籍借阅系统 protected void doGet(HttpServletRequest req, HttpServletR ...
- JSP图书销售系统JSP网上书店商城JSP网上书店JSP图书在线销售系统JSP二手图书商城系统
JSP图书销售系统JSP网上书店商城JSP网上书店JSP图书在线销售系统JSP二手图书商城系统 protected void doGet(HttpServletRequest req, HttpSer ...
- linux如何生成tar文件内容,在Linux系统中创建tar.gz文件的方法及实例讲解
本文介绍在Linux系统中创建tar.gz文件的方法,及实例讲解. 介绍 tar存档是一个文件,用于存储其他文件的集合,包括有关它们的信息,例如所有权.权限和时间戳. 在Linux操作系统中,可以使用 ...
- 操作系统:Win10系统下LocalNow和Roaming文件夹介绍
Win10操作系统下AppData文件夹包括以下子文件夹 - 漫游,本地和本地. 几乎每个在Win10 PC上安装的程序都会在AppData文件夹中创建自己的文件夹,并将其所有相关信息存储在其中.Ap ...
- android 创建隐藏文件夹吗,Android创建隐藏文件可能文件夹
Android创建隐藏文件或者文件夹 android创建隐藏文件或者文件夹,其实只要在文件名或者文件夹名字前加一个点号即可. 隐藏文件(夹)可直接进行读写. 如果需要去除隐藏,那就是重命名,去除点即可 ...
- 《Python Cookbook 3rd》笔记(5.19):创建临时文件和文件夹
创建临时文件和文件夹 问题 你需要在程序执行时创建一个临时文件或目录,并希望使用完之后可以自动销毁掉. 解法 tempfile 模块中有很多的函数可以完成这任务.为了创建一个匿名的临时文件,可以使用 ...
- 远程服务器创建文件,ftp创建远程服务器文件夹
ftp创建远程服务器文件夹 内容精选 换一换 在本地主机和Windows弹性云服务器上分别安装QQ.exe等工具进行数据传输.使用远程桌面连接mstsc方式进行数据传输.该方式不支持断点续传,可能存在 ...
- mkdir 创建随机序号文件夹_使用PowerShell批量新建文件夹的方法
系统推荐:[GHOST WIN10 X64] 现在很多的电脑都是使用Win10,如果我们在整理文档需要新建多个文件夹进行归类,不如使用Win10系统中自带的PowerShell,来批量新建文件夹,具体 ...
- Windows系统下实现两个文件夹自动同步问题(mklink命令的使用)
Windows系统下实现两个文件夹自动同步问题(mklink命令的使用) 例:E:\My OneNote文件夹同步到OneDrive中 路径1:C:\Users\XXX\OneDrive\My One ...
- linux云同步文件夹,在Linux系统上备份Dropbox同步文件夹的方法
本文介绍在Linux系统上备份Dropbox同步文件夹的方法,确保Dropbox文件夹中的数据安全的一种好方法是创建本地备份.在Linux上,有很多不同的方法可以创建备份,因此我们将介绍简单实用的方法 ...
最新文章
- Objective C 链式调用
- implementation ‘com.zxy.android:recovery:
- R语言--查看数据类型+类型判断
- 全志 强制隐藏导航栏状态栏 Patch
- 每日一笑 | 史上最贴心的骗子
- Fantasia (Tarjan+树形DP)
- 计划会议要开始了,产品负责人却没来…
- 都是宝宝:北京孩子3成不玩电子游戏睡眠状况最好 江苏孩子起得最早
- Downloading SRA data using command line utilities
- 我所见过的最简短、最灵活的javascript日期转字符串工具函数
- 微信公众号 菜单 { “errcode“: 47001, “errmsg“: “data format error rid: 61b36b ...“}
- 双稳态一键开关机电路
- 地理极客的Planet卫星影像指南
- 2016最新iOS开发证书配置和安装的详细步骤攻略
- 如何更新谷歌chrome浏览器
- python如何实现图像中特定颜色的种类识别及特定颜色的占比代码
- SpringWebMVC到底是如何工作的?
- SSM岭师旧书回收系统毕业设计源码041921
- Chrome OS 旅程的下一步
- 工程经济—价值工程在工程建设中的应用
热门文章
- mysql sock golang_golang socket连接复用 - smux
- 计算机高级计算,windows系统自带计算器高级用法分享
- 微信开发者工具 文件删除操作 二次确认框 设置
- 使用BeautifulSoup爬取百度图片
- 层次聚类python实现
- spring-IOC注解部分笔记整理(观看IT黑马视频自学)
- Elasticsearch教程(35) ik中文分词器+pinyin拼音分词器+同义词
- 求职面试过程中都需要注意哪些
- matlab 指定ccs编译器,在CCS5.5中导入CCS3.3工程——指定编译器和修改prj文件
- 怎么批量修改图片尺寸大小?