| | |
| | | failed-books.txt |
| | | no-file-books.txt |
| | | not-found-books.txt |
| | | alreadyDownloadedBooks.txt |
| | |
| | | } |
| | | } |
| | | |
| | | initLogger(); |
| | | main() |
| | | .finally(() => { |
| | | logFile.close(); |
| | | }); |
| | | function failed2Excel() { |
| | | const ids = fs.readFileSync("C:\\Users\\lyg\\Downloads\\not-found-books.txt", "utf-8").split("\n"); |
| | | const workSheets = xlsx.parse("【第二批二次处理后】交付清单.xlsx"); |
| | | const sheet = workSheets[0]; |
| | | const rows = sheet.data.filter((row) => ids.includes(row[0])); |
| | | const buffer = xlsx.build([{ name: "Sheet1", data: rows }]); |
| | | fs.writeFileSync("C:\\Users\\lyg\\Downloads\\not-found-books.xlsx", buffer, (err) => { }); |
| | | } |
| | | failed2Excel(); |
| | | // initLogger(); |
| | | // main() |
| | | // .finally(() => { |
| | | // logFile.close(); |
| | | // }); |
| | | |
| | |
| | | continue; |
| | | } |
| | | // 等一段时间再打开详情页 |
| | | sleep(getRandomNumber(1000, 30000)); |
| | | sleep(getRandomNumber(500, 10000)); |
| | | // 打开详情页 |
| | | await openBookDetailPage(book, detailPageUrl); |
| | | // 获取下载链接 |
| | | const url = await getDownloadUrl(book); |
| | | if (!url) { continue; } |
| | | // 等待一段时间再下载 |
| | | await sleep(getRandomNumber(1000, 30000)); |
| | | await sleep(getRandomNumber(500, 10000)); |
| | | // 下载文件 |
| | | try { |
| | | await downloadFile(book, url); |
| | |
| | | } catch (e) { } |
| | | successCount++; |
| | | // 等一段时间再下一个 |
| | | sleep(getRandomNumber(1000, 30000)); |
| | | sleep(getRandomNumber(500, 10000)); |
| | | } |
| | | } |
| | | |