## 牛客网 面试宝典爬取工具 ### 项目简介 可以爬取牛客网 [面经汇总](https://www.nowcoder.com/interview/center) 页面下**面试宝典**部分教程(如:[Java工程师面试宝典](https://www.nowcoder.com/issue/tutorial?tutorialId=94)),并且转换成 pdf 文件,方便打印出来学习。 > 【注意】本项目仅用于学习、研究使用,不得使用项目代码从事任何侵权或违法的行为,请与下载后48小时之内删除。 ### 项目开发 - 项目使用nodejs开发 - 项目使用 [wkhtmltopdf](https://wkhtmltopdf.org/) 将爬取到的 html 转换为 pdf 文件,所以如果您需要生成 pdf 文件,需要安装一下。 ### 项目使用 首先克隆仓库,并进入项目目录 ```bash git clone https://git.only4.work/coder-xiaomo/nowcoder-bible cd nowcoder-bible ``` 然后通过 npm 安装依赖 ```bash npm i ``` 修改 `main.js` 代码 (1) 指定需要爬取的教程id 例如我们现在需要爬取这篇教程:https://www.nowcoder.com/issue/tutorial?tutorialId=94&uuid=ea1986fcff294f6292385703e94689e8 那么我们找到链接中的 `tutorialId` (例如上面的链接就是 `94`) 并修改 `main()` 方法中的 `urlContent` 地址最后的序号为上面链接中的 `tutorialId`,例如: ```javascript let urlContent = "https://www.nowcoder.com/content/tutorial/catalog/94"; ``` (2) 如果您只需要爬取 html 文件而无需转换为 pdf,那么请注释掉 `getDetail()` 方法中的如下行: ```javascript await transferToPDF(/* ****** */); ``` 否则,请安装 wkhtmltopdf (3) 如果您已经爬取了 html,需要将其转换为 pdf,那么请修改代码最后的调用函数(由 `main()` 改为 `transferHTMLToPDF()`),如下: ```javascript // 爬取 + 转换为pdf // main(); // 已经爬取过,只需要转pdf transferHTMLToPDF(); ``` 在项目文件夹下,运行如下命令以启动 ```bash node main.js ``` 等待爬取完成,完成后文件将会保存在 `output/html` 和 `output/pdf` 文件夹下。