1
0
Code Pull Requests Projects Releases Activity GitHub Gitee
nowcoder-bible/README.md
2022-08-17 13:49:59 +08:00

71 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 牛客网 面试宝典爬取工具
### 项目简介
可以爬取牛客网 [面经汇总](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` 文件夹下。