Skip to content

Commit e4391a6

Browse files
author
jjeejj
committed
handle err login
1 parent 3dd3927 commit e4391a6

File tree

3 files changed

+19
-10
lines changed

3 files changed

+19
-10
lines changed

README.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
# 极客时间专栏转换为PDF
22

3+
>说明:该项目仅仅只能用户个人学习使用,不能在商业中使用,若极客时间官方要求该代码仓库删除,请联系我进行删除
4+
35
## 使用方法
46

7+
### 配置信息
8+
59
在配置文件[config.js](./config,js)中修改配置所需要的信息
610

711
```js
812
/**
913
* 需要转换为 pdf 的配置信息
1014
*/
1115
module.exports = {
12-
url: 'https://time.geekbang.org/serv/v1/article',
13-
columnBaseUrl: 'https://time.geekbang.org/column/article/',
16+
url: 'https://time.geekbang.org/serv/v1/article', // 该配置项不需要改动
17+
columnBaseUrl: 'https://time.geekbang.org/column/article/', // 该配置项不需要改动
1418
columnName: '玩转VScode', // 专栏名称
1519
firstArticalId: 18053, //专栏第一篇文章的ID
1620
isdownloadVideo: false, // 是否下载音频
@@ -19,15 +23,15 @@ module.exports = {
1923
};
2024
```
2125

22-
> 会自动生成一个`geektime_{{columnName}}` 的文件夹来保存导出的所有`pdf`文件, `columnName` 为上面配置的
26+
* 上面的配置项**前两项是不需要修改**的, 只需要修改后面的专栏信息
2327

24-
> `firstArticalId` 这个参数最好配置专栏第一篇文章的 `ID` ,这个可以获取专栏的所有的文章,若不是第一篇文章的`ID` 则获取的是该文件以及之后的文章
28+
* 会自动生成一个`geektime_{{columnName}}` 的文件夹来保存导出的所有`pdf`文件, `columnName` 为上面配置的
2529

26-
> `cookie` 你在网页版登录参数的`cookie`信息
30+
* `firstArticalId` 这个参数最好配置专栏第一篇文章的 `ID` ,这个可以获取专栏的所有的文章,若不是第一篇文章的`ID` 则获取的是该文章以及之后的文章
2731

28-
> 其他的配置项默认可以不改动
32+
* `cookie` 你在网页版登录后返回的`cookie`信息
2933

30-
然后运行:
34+
### 运行
3135

3236
`node columnArticleList.js` 等待一段时间,生成 `PDF` 完成
3337

columnArticleList.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,13 @@ const generaterPdf = require('./generaterPdf.js');
2222
'id': articalId,
2323
'include_neighbors': true
2424
});
25+
if (res.body && res.body.error && res.body.error.code){
26+
console.log('error msg', res.body.error.msg);
27+
throw new Error(res.body.error.msg);
28+
};
2529
console.log(res.body.data.article_title);
2630
let columnArticle = res.body.data;
31+
2732
let articleInfo = {
2833
articleTitle: columnArticle.article_title, // 文章标题
2934
articalUrl: config.columnBaseUrl + articalId, // 文章地址
@@ -39,7 +44,7 @@ const generaterPdf = require('./generaterPdf.js');
3944
//生成PDF
4045
await generaterPdf(articleInfo,
4146
columnArticle.article_title + '.pdf',
42-
path.resolve(__dirname, config.columnName)
47+
path.resolve(__dirname, 'geektime_' + config.columnName)
4348
);
4449
// 判断是否还有下一篇文章
4550
let neighborRight = columnArticle.neighbors.right;
@@ -54,6 +59,6 @@ const generaterPdf = require('./generaterPdf.js');
5459
};
5560
await getNextColumnArticleUrl(firstArticalId);
5661
console.log('专栏文章链接获取完成');
57-
utils.writeToFile(`${config.columnName}`, JSON.stringify(columnArticleUrlList,null,4));
62+
utils.writeToFile(`geektime_${config.columnName}`, JSON.stringify(columnArticleUrlList,null,4));
5863
return columnArticleUrlList;
5964
})(config.firstArticalId);

config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ module.exports = {
88
firstArticalId: 18053, //专栏第一篇文章的ID
99
isdownloadVideo: false, // 是否下载音频
1010
isComment: false, // 是否导出评论
11-
cookie: '_ga=GA1.2.452325826.1522412060; OUTFOX_SEARCH_USER_ID_NCOO=960782688.2413434; orderInfo={%22list%22:[{%22count%22:1%2C%22image%22:%22https://static001.geekbang.org/resource/image/cb/c8/cb154cb749aeb59c2cf8c00a17f0b0c8.jpg%22%2C%22name%22:%22TensorFlow%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98%22%2C%22sku%22:100023001%2C%22price%22:{%22sale%22:9900}}]%2C%22invoice%22:false%2C%22app_id%22:3%2C%22cid%22:153%2C%22isFromTime%22:true%2C%22detail_url%22:%22https://time.geekbang.org/column/detail/153-76554%22}; GCID=935e65d-0de041d-857c0d5-e9e4f37; _gid=GA1.2.1237200660.1554519228; GCESS=BAMEfBWoXAgBAwUEAAAAAAIEfBWoXAkBAQEET1cPAAQEAC8NAAsCBAAKBAAAAAAGBAHVTeoHBKaztAQMAQE-; Hm_lvt_022f847c4e3acd44d4a2481d9187f1e6=1554519252,1554519316,1554544920,1554545178; Hm_lpvt_022f847c4e3acd44d4a2481d9187f1e6=1554545178; _gat=1; SERVERID=1fa1f330efedec1559b3abbcb6e30f50|1554545360|1554545092'
11+
cookie: '_ga=G1.2.452325826.152241060; OUTFOX_SEARCH_USER_ID_NCOO=960782688.2413434; orderInfo={%22list%22:[{%22count%22:1%2C%22image%22:%22https://static001.geekbang.org/resource/image/cb/c8/cb154cb749aeb59c2cf8c00a17f0b0c8.jpg%22%2C%22name%22:%22TensorFlow%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8%E4%B8%8E%E5%AE%9E%E6%88%98%22%2C%22sku%22:100023001%2C%22price%22:{%22sale%22:9900}}]%2C%22invoice%22:false%2C%22app_id%22:3%2C%22cid%22:153%2C%22isFromTime%22:true%2C%22detail_url%22:%22https://time.geekbang.org/column/detail/153-76554%22}; GCID=935e65d-0de041d-857c0d5-e9e4f37; _gid=GA1.2.1237200660.1554519228; GCESS=BAMEfBWoXAgBAwUEAAAAAAIEfBWoXAkBAQEET1cPAAQEAC8NAAsCBAAKBAAAAAAGBAHVTeoHBKaztAQMAQE-; Hm_lvt_022f847c4e3acd44d4a2481d9187f1e6=1554519252,1554519316,1554544920,1554545178; Hm_lpvt_022f847c4e3acd44d4a2481d9187f1e6=1554545178; _gat=1; SERVERID=1fa1f330efedec1559b3abbcb6e30f50|1554545360|1554545092'
1212
};

0 commit comments

Comments
 (0)