|
1 | 1 | # geek_crawler |
2 | | -极客时间课程抓取脚本,支持输入账号密码后自动将极客时间的专栏课程保存到本地 |
| 2 | + |
| 3 | +最近极客时间有个活动,企业可以为每位员工免费领取3门课程。刚好我们公司领导也给我们申请了这个权益(没有领取的可以找领导说说帮忙弄一下,[活动地址](https://account.geekbang.org/biz/signin?redirect=https%3A%2F%2Fservice.geekbang.org%2Fdashboard%2Fhome%2F%3Futm_source%3Dfrontshow%26utm_medium%3Dwechat%26utm_campaign%3D316%26utm_term%3Dfrontend%26gk_source%3Dfrontshowwechat&gk_source=frontshowwechat&utm_source=frontshow&utm_medium=wechat&utm_campaign=316&utm_term=frontend))。 |
| 4 | + |
| 5 | +免费领取的课程只有30天有效期,因为工作日白天要正常上班,30天之内没法学完3门课程。所以就写了个脚本,将账号下所有可以看到的专栏课程自动保存到本地。 |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | +### 如何使用 |
| 10 | + |
| 11 | +1. 将代码 clone 到本地 |
| 12 | + |
| 13 | + ```shell |
| 14 | + git clone [email protected]:zhengxiaotian/geek_crawler.git |
| 15 | + ``` |
| 16 | + |
| 17 | +2. 直接在终端或者 Pycharm 中运行脚本(ps: 代码是在 Python3 下编写的,需要使用 Python3 运行) |
| 18 | + |
| 19 | + ```shell |
| 20 | + python geek_crawler.py |
| 21 | + ``` |
| 22 | + |
| 23 | +3. 输入账号密码 |
| 24 | + |
| 25 | + ```shell |
| 26 | + E:\geek_crawler (master -> origin) |
| 27 | + λ python geek_crawler.py |
| 28 | + 请输入你的极客时间账号(手机号): ************* |
| 29 | + 请输入你的极客时间密码: ************ |
| 30 | + ``` |
| 31 | + |
| 32 | +4. 抓取完成 |
| 33 | + |
| 34 | + ```shell |
| 35 | + 2020-04-28 19:32:41,624 - geek_crawler.py[line:307] - INFO: 请求获取文章信息接口: |
| 36 | + 2020-04-28 19:32:41,633 - geek_crawler.py[line:320] - INFO: 接口请求参数:{'id': 225554, 'include_neighbors': 'tru |
| 37 | + e', 'is_freelyread': 'true'} |
| 38 | + 2020-04-28 19:32:42,047 - geek_crawler.py[line:349] - INFO: ---------------------------------------- |
| 39 | + 2020-04-28 19:32:47,131 - geek_crawler.py[line:478] - INFO: 正常抓取完成。 |
| 40 | + ``` |
| 41 | + |
| 42 | +  |
| 43 | + |
| 44 | + *PS:如果抓取过程中有接口报错导致抓取中断,可以查看日志中对应的报错信息,然后直接重新跑脚本继续抓取(之前抓取成功的文章会在本地有文档记录,后续不会重复抓取的)* |
| 45 | + |
| 46 | + |
| 47 | + |
| 48 | +### 成果展示 |
| 49 | + |
| 50 | + |
| 51 | + |
| 52 | + |
| 53 | + |
| 54 | + |
| 55 | + |
| 56 | +### 功能清单 |
| 57 | + |
| 58 | +- [x] 输入账号密码后自动将该账号下所有可以看到的专栏(图文+音频),保存到本地; |
| 59 | + |
| 60 | +- [x] 可以支持选择保存成 Markdown 文档或者 HTML 文档; |
| 61 | + |
| 62 | +- [x] 支持配置排除某些课程的拉取(比如已经有的课程不再下载); |
| 63 | + |
| 64 | +- [ ] 抓取指定名称的课程; |
| 65 | + |
| 66 | +- [ ] 将每篇文章的评论与正文一起保存到本地; |
| 67 | + |
| 68 | +- [ ] 将视频拉取下来保存成 MP4 文件; |
| 69 | + |
| 70 | + |
0 commit comments