自动每日领取 PACKT 的限免技术书籍的小工具

2017-05-12 21:14:52 +08:00
 ruter8

之前我也发过两次 PACKT 的免费领取限免技术书籍的帖子,有时候有需要的书却因为一些事情忘记去领取而错过,所以就有了这个小工具,现在挂在服务器上自动领取,不需要理会了。

用了 RequestsPyQuery 这两个库

个人需求的产物,写得比较随意,需要的自取~

使用说明

安装依赖

sudo pip install -r requirements.txt

config.py 中设置你的PACKT 账户

最后运行

python main.py

运行选项

选项说明

  1. 获取今日限免的书籍
  2. 下载账户里的所有电子书到本地,存放在运行目录下的 eBooks 文件夹中
  3. 自动获取限免书籍,默认每 8 小时获取一次,可以在 config.py 中修改 frequency 的值

只支持 Python3.

传送门

free-PACKT-eBooks-Crawler

2822 次点击
所在节点    分享创造
8 条回复
xiaozizayang
2017-05-12 21:22:15 +08:00
老哥稳
ruter8
2017-05-12 21:27:50 +08:00
@xiaozizayang 别,你写的都是好东西,我这个无关痛痒的
xiaozizayang
2017-05-12 21:43:10 +08:00
@ruter8 来合作搞个电子书的
davidyin
2017-05-13 01:48:19 +08:00
我刚才试用了一下,出现下面的提示信息,对 python 不懂。
Practical Linux Security Cookb has been saved!
Trying next...
Traceback (most recent call last):
File "main.py", line 165, in <module>
options[step]()
File "main.py", line 120, in save_ebooks
save_dir = get_save_path(name)
File "main.py", line 34, in get_save_path
save_path = os.path.join(SAVE_DIR, name)
File "/usr/lib/python3.5/posixpath.py", line 89, in join
genericpath._check_arg_types('join', a, *p)
File "/usr/lib/python3.5/genericpath.py", line 143, in _check_arg_types
(funcname, s.__class__.__name__)) from None
ruter8
2017-05-13 08:41:45 +08:00
@davidyin 这个可能是程序没有处理好异常情况,请问你的电子书里是不是只有一本书?
davidyin
2017-05-14 13:55:00 +08:00
昨天只有一本的是这样的,刚刚重新试了一下,多了两本,再次下载还是有错误信息。
yin@instance-2:~/free-PACKT-eBooks-Crawler$ python3 main.py
Trying to load cookies...
Choose an option:

1. Claim today's free ebook

2. Download all your ebooks

3. Auto claim free ebooks

0. Quit

Your choice: 2
Start download your eBooks...
Unity 5.x Shaders and Effects Cookb has been saved!
Trying next...
Learning AWS has been saved!
Trying next...
Practical Linux Security Cookb already existed!
Traceback (most recent call last):
File "main.py", line 165, in <module>
options[step]()
File "main.py", line 120, in save_ebooks
save_dir = get_save_path(name)
File "main.py", line 34, in get_save_path
save_path = os.path.join(SAVE_DIR, name)
File "/usr/lib/python3.5/posixpath.py", line 89, in join
genericpath._check_arg_types('join', a, *p)
File "/usr/lib/python3.5/genericpath.py", line 143, in _check_arg_types
(funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'NoneType'
davidyin
2017-05-14 13:55:30 +08:00
当然图书下载下来还是正常的。
ruter8
2017-05-14 15:56:53 +08:00
@davidyin 好的,我查一下~谢谢你的反馈!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/360963

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX