填满你的NAS: DSM系统迅雷远程全自动爬取并下载美剧

2017-05-18 18:31:44 156点赞 1429收藏 142评论

前言

本人刚入DS216+II不久,各种探索他的新功能,查看了各个帖子看如何玩转NAS,都没有太过惊喜的发现。然而有人提到了用来作爬虫,远程下美剧之类的,让我萌生了自动下载的念头。各种搜索有这方面事迹的人,但是没有找到工具更没有这方面的代码。

由于本人之前自己玩过机票店,做过这方面的价格监控,只要找到合适的网站,爬取新剧获取链接自然不在话下。而要实现自动下载,我看上了迅雷的远程下载,一是因为我有他的会员,另一方面他在DSM通过docker安装后使用起来也确实方便。

源代码

本代码的运行需要python2和python3共存,好在DSM本来就是linux系统,自带python2,而套件中心又可以直接安装python3.5,因此还算方便。

网上能找到的迅雷远程接口的代码都已经是多年前的了,顺手找了一个,发现登录部分已经无效,重写了一下。而我之前一直都是用的python3写脚本,所以python2的代码没能转换成python3版本,如果有大神能帮忙转一下就最好了。

代码原理是分析字幕组一周排行榜,讲榜单上的收藏最多和流量最多二榜求交集,将交集中的剧未下载过的部分添加至迅雷远程。

填满你的NAS: DSM系统迅雷远程全自动爬取并下载美剧

下载地址

食用流程

以下流程可能需要一定的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启动脚本即可

填满你的NAS: DSM系统迅雷远程全自动爬取并下载美剧

进阶使用

按照上述流程已经可以实现链接的爬取并添加至远程迅雷,但一旦控制台窗口关闭,进程也就结束,一种简单的方式是使用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来查看脚本状态

填满你的NAS: DSM系统迅雷远程全自动爬取并下载美剧

5、实现supervisor开机自启动

填满你的NAS: DSM系统迅雷远程全自动爬取并下载美剧

哈哈 这是留给大家的作业咯~填满你的NAS: DSM系统迅雷远程全自动爬取并下载美剧

总结

这是NAS的一个小玩法,其实前人有所提及但留下的工具太少。作为一个学机械写NC代码的人,凭借自己这些年对Python的探索写出这个代码希望大家喜欢,代码中不严谨的地方希望能有大神接手进行优化。

目前设置的每6小时查看一次排行榜,计算好任务列表后,再每隔10秒添加至迅雷远程。首次运行可能会添加很多很多个下载链接。

另外,有能力的朋友不妨增加一个添加下载就push到自己手机的功能,这样相当于提醒自己今天回家可以看新剧了。

好了,懒再一次推动生产力了,又一次的解放双手啦~填满你的NAS: DSM系统迅雷远程全自动爬取并下载美剧

填满你的NAS: DSM系统迅雷远程全自动爬取并下载美剧

展开 收起
142评论

  • 精彩
  • 最新
  • 问下楼主,黑群晖5.2 现在远程迅雷的docker还有哪个可以用的?

    校验提示文案

    提交
    没研究过黑群晖

    校验提示文案

    提交
    收起所有回复
  • 低端的可以迅雷不

    校验提示文案

    提交
    只要NAS上装了远程迅雷就可以用

    校验提示文案

    提交
    如何安装啊,低端的貌似安装不了

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 这个,如何配置资源站和下载版本选择呢~

    校验提示文案

    提交
    每个站点要写不同的爬虫程序 我这个程序只能用于爬取zimuzu.tv的 而且我筛选的是带有中文字幕的版本 个性化的需求就需要自己研究了

    校验提示文案

    提交
    收起所有回复
  • 另外请问楼主,通过脚本添加以后应该能在迅雷远程端的任务列表里看到吧?为何我的看不到?另外如果迅雷远程绑定多个下载器,会怎样?

    校验提示文案

    提交
    任务列表里可以看到 绑定多个下载器我没测试过 你打开yuancheng.xunlei.com 上面默认显示的是哪个理论上任务就会添加到哪一个去

    校验提示文案

    提交
    收起所有回复
  • python3.5怎么都装不上去,至今还在3

    校验提示文案

    提交
    我的脚本只加了一个lxml库 我看了一下这个库在py3支持3.2~3.6 所以估计你的也可以用

    校验提示文案

    提交
    收起所有回复
  • 据不完全统计,nas中的资源95%的资源不会看第二遍,至少30%的连看都没有看过,所以,看完就删才是王道,现在电影电视娱乐产业发达的今天,新出的都看不过来

    校验提示文案

    提交
  • 看到“重写了一下”。。我就知道不用看了 [喜极而泣] [喜极而泣] [喜极而泣]

    校验提示文案

    提交
  • 好高级的玩法!好羡慕有时间折腾的人!打赏!

    校验提示文案

    提交
  • 是呀 大部分都没时间看,反而网络长期拥堵还损硬盘。简易三思。

    校验提示文案

    提交
  • 看起来好麻烦,m-team直接RSS收藏就好

    校验提示文案

    提交
    求邀请码!

    校验提示文案

    提交
    收起所有回复
  • 有个东西叫flexget,rss订阅比你这个爽多了。

    校验提示文案

    提交
  • 时代变了,家庭网络环境都开始运维自动化了,以后大概不是写点机器学习和自然语言处理的实现都不好意思发出来吧……

    校验提示文案

    提交
  • 不明觉厉 打赏表示敬意

    校验提示文案

    提交
  • 值得打赏了,不空虚

    校验提示文案

    提交
  • 想看哪个,直接用百度云看呗

    校验提示文案

    提交
  • 看到这篇先赏为敬

    校验提示文案

    提交
  • 这就厉害了啊!

    校验提示文案

    提交
  • 好像很有科技含量,表示感觉好麻烦咋办

    校验提示文案

    提交
  • 很高级的样子,慢慢再学习😊

    校验提示文案

    提交
  • 不觉明历 [晕死] 只会用迅雷远程下载...

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
1.4K
扫一下,分享更方便,购买更轻松