填满你的NAS: DSM系统迅雷远程全自动爬取并下载美剧
前言
本人刚入DS216+II不久,各种探索他的新功能,查看了各个帖子看如何玩转NAS,都没有太过惊喜的发现。然而有人提到了用来作爬虫,远程下美剧之类的,让我萌生了自动下载的念头。各种搜索有这方面事迹的人,但是没有找到工具更没有这方面的代码。
由于本人之前自己玩过机票酒店,做过这方面的价格监控,只要找到合适的网站,爬取新剧获取链接自然不在话下。而要实现自动下载,我看上了迅雷的远程下载,一是因为我有他的会员,另一方面他在DSM通过docker安装后使用起来也确实方便。
源代码
本代码的运行需要python2和python3共存,好在DSM本来就是linux系统,自带python2,而套件中心又可以直接安装python3.5,因此还算方便。
网上能找到的迅雷远程接口的代码都已经是多年前的了,顺手找了一个,发现登录部分已经无效,重写了一下。而我之前一直都是用的python3写脚本,所以python2的代码没能转换成python3版本,如果有大神能帮忙转一下就最好了。
代码原理是分析字幕组一周排行榜,讲榜单上的收藏最多和流量最多二榜求交集,将交集中的剧未下载过的部分添加至迅雷远程。
食用流程
以下流程可能需要一定的Linux或Python基础,均可度娘解决,不做详解
1、远程迅雷安装并配置好,套件中心安装Python,安装好应该是Python3.5版本;
2、启用SSH和SFTP,用WINSCP连接NAS,并用puTTY打开;
3、将代码放到某个你觉得合适的目录里(用winscp吧),并在代码目录中新建一个record空目录(用来存放下载过的美剧数据);
4、更改config.py内的用户名密码以及代码存放路径的设置,更多设置请参考readme文件;
5、运行以下命令为python3安装lxml库:
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
python3 -m pip install lxml
6、运行python3 scan.py启动脚本即可
进阶使用
按照上述流程已经可以实现链接的爬取并添加至远程迅雷,但一旦控制台窗口关闭,进程也就结束,一种简单的方式是使用nohup命令实现进程的后台运行,但脚本如果报错进程也就停止了,且重启还需要重新敲命令。
这里介绍supervisor来管理进程:
1、为python2安装pip并使用pip安装supervisor
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
python -m pip install supervisor
2、生成supervisor配置文件
echo_supervisord_conf > /etc/supervisord.conf
3、打开上一步生成的配置文件,并在文件内增加以下内容
[program:drama_scan]
# 启动命令入口
command=python3 /your/path/to/scan.py
#运行命令的用户名
user=admin
autostart=true
autorestart=true
4、输入命令supervisorctl,之后输入start drama_scan即可启动脚本了,同时可以输入status来查看脚本状态
5、实现supervisor开机自启动
哈哈 这是留给大家的作业咯~
总结
这是NAS的一个小玩法,其实前人有所提及但留下的工具太少。作为一个学机械写NC代码的人,凭借自己这些年对Python的探索写出这个代码希望大家喜欢,代码中不严谨的地方希望能有大神接手进行优化。
目前设置的每6小时查看一次排行榜,计算好任务列表后,再每隔10秒添加至迅雷远程。首次运行可能会添加很多很多个下载链接。
另外,有能力的朋友不妨增加一个添加下载就push到自己手机的功能,这样相当于提醒自己今天回家可以看新剧了。
好了,懒再一次推动生产力了,又一次的解放双手啦~
饺饺饺
校验提示文案
ericm1112
校验提示文案
sevend
校验提示文案
Dale1025
校验提示文案
滑大一只鹅
校验提示文案
man_freddy
校验提示文案
jarryxf2008
校验提示文案
阿迪达吥斯
校验提示文案
小风东吹
校验提示文案
Satan神
校验提示文案
kidolphin
校验提示文案
daifous
校验提示文案
阿乐熊
校验提示文案
hughdna
校验提示文案
ready4U
校验提示文案
hrs1029
校验提示文案
第十五大道
校验提示文案
万古第一神
校验提示文案
KingGrimlock
校验提示文案
我是黑橘子
校验提示文案
陈程宸
校验提示文案
bigboss60
unix:///tmp/supervisor.sock no such file
出现上述错误的原因是supervisord并未启动,只要在命令行中使用命令sudo supervisord启动supervisord即可。
校验提示文案
值友3360550115
校验提示文案
痛风大佬
校验提示文案
火柴不靠谱
校验提示文案
思明
校验提示文案
牛头战士
校验提示文案
饺饺饺
校验提示文案
daifous
校验提示文案
njhxo
校验提示文案
温软的头
校验提示文案
滑大一只鹅
校验提示文案
结冰的影子
校验提示文案
pwcpp
校验提示文案
吃肉的稻草人
校验提示文案
Nyigheo
校验提示文案
抖森vs卷福
校验提示文案
zjt6789
群晖怎么备份照片求教程
校验提示文案
多宝奇兵
校验提示文案
珂珂豆
校验提示文案