7 Star 92 Fork 36

尖斌卡/geek_crawler

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

geek_crawler

最近极客时间有个活动,企业可以为每位员工免费领取3门课程。刚好我们公司领导也给我们申请了这个权益(没有领取的可以找领导说说帮忙弄一下,活动地址)。

免费领取的课程只有30天有效期,因为工作日白天要正常上班,30天之内没法学完3门课程。所以就写了个脚本,将账号下所有可以看到的专栏课程自动保存到本地。

:boom: 该项目仅限学习交流使用,请勿用于任何商业行为和损害其它人利益的行为。 :boom:

如何使用

  1. 将代码 clone 到本地

    git clone git@github.com:zhengxiaotian/geek_crawler.git
  2. 直接在终端或者 Pycharm 中运行脚本(ps: 代码是在 Python3 下编写的,需要使用 Python3 运行)

    # 运行前需安装一个第三方库 requests
    python geek_crawler.py
  3. 输入账号密码

    E:\geek_crawler (master -> origin)
    λ python geek_crawler.py
    请输入你的极客时间账号(手机号): *************
    请输入你的极客时间密码: ************
  4. 抓取完成

    2020-04-28 19:32:41,624 - geek_crawler.py[line:307] - INFO: 请求获取文章信息接口:
    2020-04-28 19:32:41,633 - geek_crawler.py[line:320] - INFO: 接口请求参数:{'id': 225554, 'include_neighbors': 'tru
    e', 'is_freelyread': 'true'}
    2020-04-28 19:32:42,047 - geek_crawler.py[line:349] - INFO: ----------------------------------------
    2020-04-28 19:32:47,131 - geek_crawler.py[line:478] - INFO: 正常抓取完成。

    Snipaste_2020-04-29_08-55-08.png

    PS:如果抓取过程中有接口报错导致抓取中断,可以查看日志中对应的报错信息,然后直接重新跑脚本继续抓取(之前抓取成功的文章会在本地有文档记录,后续不会重复抓取的)

成果展示

Snipaste_2020-04-29_08-44-44.png

Snipaste_2020-04-28_19-31-52.png

功能清单

  • 输入账号密码后自动将该账号下所有可以看到的专栏(图文+音频),保存到本地;

  • 可以支持选择保存成 Markdown 文档或者 HTML 文档;

  • 支持配置排除某些课程的拉取(比如已经有的课程不再下载);

  • 抓取指定名称的课程;

  • 将每篇文章的评论与正文一起保存到本地;

  • 将视频拉取下来保存成 MP4 文件;

参考库

重试库-tenacity

https://blog.csdn.net/qq_37287621/article/details/95055718

MIT License Copyright (c) 2020 zhengxiaotian Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

极客时间 展开 收起
Python 等 2 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/aohanhongzhi/geek_crawler.git
git@gitee.com:aohanhongzhi/geek_crawler.git
aohanhongzhi
geek_crawler
geek_crawler
feature/special-course

搜索帮助

Cb406eda 1850385 E526c682 1850385