更新README
This commit is contained in:
53
README.md
53
README.md
@@ -2,28 +2,24 @@
|
|||||||
|
|
||||||
### 项目简介
|
### 项目简介
|
||||||
|
|
||||||
项目使用nodejs开发
|
可以爬取牛客网 [面经汇总](https://www.nowcoder.com/interview/center) 页面下**面试宝典**部分教程(如:[Java工程师面试宝典](https://www.nowcoder.com/issue/tutorial?tutorialId=94)),并且转换成 pdf 文件,方便打印出来学习。
|
||||||
|
|
||||||
可以爬取牛客网 面经汇总 > 面试宝典 部分教程:https://www.nowcoder.com/interview/center?parentJobId=0
|
### 项目开发
|
||||||
|
|
||||||
(例如:https://m.nowcoder.com/tutorial/94/ea1986fcff294f6292385703e94689e8)
|
|
||||||
|
|
||||||
|
- 项目使用nodejs开发
|
||||||
|
|
||||||
|
- 项目使用 [wkhtmltopdf](https://wkhtmltopdf.org/) 将爬取到的 html 转换为 pdf 文件,所以如果您需要生成 pdf 文件,需要安装一下。
|
||||||
|
|
||||||
### 项目使用
|
### 项目使用
|
||||||
|
|
||||||
> 项目使用 wkhtmltopdf 将爬取到的 html 转换为 pdf 文件,所以如果您需要生成 pdf文件,需要安装一下,下载地址:
|
|
||||||
>
|
|
||||||
> https://wkhtmltopdf.org/
|
|
||||||
|
|
||||||
首先克隆仓库,并进入项目目录
|
首先克隆仓库,并进入项目目录
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone xxxxx
|
git clone https://git.only4.work/coder-xiaomo/nowcoder-bible
|
||||||
cd
|
cd nowcoder-bible
|
||||||
```
|
```
|
||||||
|
|
||||||
然后使用安装依赖
|
然后通过 npm 安装依赖
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm i
|
npm i
|
||||||
@@ -31,11 +27,42 @@ npm i
|
|||||||
|
|
||||||
修改 `main.js` 代码
|
修改 `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
|
```bash
|
||||||
node main.js
|
node main.js
|
||||||
```
|
```
|
||||||
|
|
||||||
完成!
|
等待爬取完成,完成后文件将会保存在 `output/html` 和 `output/pdf` 文件夹下。
|
||||||
|
|
||||||
|
|
||||||
|
4
main.js
4
main.js
@@ -116,10 +116,10 @@ async function transferHTMLToPDF() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 爬取 + 转换为pdf
|
// 爬取 + 转换为pdf
|
||||||
// main();
|
main();
|
||||||
|
|
||||||
// 已经爬取过,只需要转pdf
|
// 已经爬取过,只需要转pdf
|
||||||
transferHTMLToPDF();
|
// transferHTMLToPDF();
|
||||||
|
|
||||||
// 测试调试用
|
// 测试调试用
|
||||||
// transferToPDF(`./output/html/8.3 操作系统(三).html`, `./output/test.pdf`)
|
// transferToPDF(`./output/html/8.3 操作系统(三).html`, `./output/test.pdf`)
|
||||||
|
Reference in New Issue
Block a user