1.0.6 • Published 5 months ago

gede-book-entity v1.0.6

Weekly downloads
-
License
ISC
Repository
github
Last release
5 months ago

电子书采集

程序编写日期:2025 年 2 月 13 日

爬虫流程

  1. 配置 MySQL:编辑 dataSource.ts
  2. 首次运行:取消 main.tsfirstTask() 的注释,执行 pnpm start
  3. 检查错误:如果程序因错误终止,删除所有已创建的表后重新运行 pnpm start
  4. 验证结果:程序结束后,检查 errorList_saveBookData.jsonerrorList_saveMagazineData.json,如有 EPUB 解析失败记录,继续执行重试操作。
  5. 重试任务
    • 注释 firstTask(),取消 retryTask() 的注释。
    • 修改 retryTask()errorList 文件名,可根据需要调整逻辑(如仅重试 Book 或 Magazine)。
    • 运行 pnpm start
  6. 最终检查:程序结束后,重复步骤 4,确保所有数据正确解析。
  7. 下载图片:取消注释 await downAllImage() 开始下载全部图片,文件名以 sha1 编码图片 URL 后,加上 .jpg 得到。

数据库查询示例

-- 获取图书分类
SELECT * FROM category WHERE type = 'book';
-- 获取期刊分类
SELECT * FROM category WHERE type = 'magazine';
-- 获取指定分类的图书列表
SELECT * FROM read_item WHERE type = 'book' AND categoryId = 2 LIMIT 20;
-- 获取指定图书的目录
SELECT * FROM catalog WHERE bookId = 4466;
-- 获取指定图书的正文
SELECT * FROM content WHERE bookId = 4466;

引用本项目

pnpm add gede-book-entity
pnpm add typeorm
import { entities, BookCategory } from 'gede-book-entity'
import { DataSource } from 'typeorm'

const AppDataSource = new DataSource({
   type: 'mysql',
   host: 'localhost',
   port: 3306,
   username: 'root',
   password: '12345678',
   synchronize: false,
   entities: [
      ...entities
   ],
   database: 'iuroc_ebook_test'
})

await AppDataSource.initialize()

const BookCategoryRepository = AppDataSource.getRepository(BookCategory)

const categories = await BookCategoryRepository.find()

console.log(categories)

await AppDataSource.destroy()
1.0.6

5 months ago

1.0.4

5 months ago

1.0.3

5 months ago

1.0.2

5 months ago

1.0.1

5 months ago

1.0.0

5 months ago