DS918+入手!配置Docker实现每日签到

2020-05-08 19:56:40 54点赞 450收藏 59评论

入坑NAS的目的本来是因为想做个仓库记录宝宝的成长,考虑了很久到底是Qnap453bmin还是群晖918+,最后为了省事还是入了918+,某鱼可以讨价还价+发票购入。

不过入坑后在Docker的路上越走越远。。。。。

发现社区里面关于Docker的一些技术应用并不多,下面主要给大火介绍下群晖如何Docek安装Python+依赖包,以及后续实现网站的自动签到的功能(~以后我也能有2000天签到勋章了~)

安装Docker

此部分比较简单,直接在套件中心搜索docker安装就行

DS918+入手!配置Docker实现每日签到

详细的可以看此链接


安装Python

安装好docker后,打开docker--注册表,搜索python,直接下载就行

DS918+入手!配置Docker实现每日签到

等待下载完毕,查看映像,点击新增

DS918+入手!配置Docker实现每日签到

进行Python的配置,点击高级设置--卷--添加文件夹,选择该容器需要挂载的路径。

这里稍微解释下:docker/python_project文件夹是Nas里面真实的文件夹,/python_project是容器里面的文件夹,这里相当于把容器的文件夹映射到Nas里边,到时我们的python脚本文件就可以放在docker/python_project里面了,后面直接点下一步分配空间内存等直接默认就好了(群晖就是这么方便么?)

DS918+入手!配置Docker实现每日签到

完成配置以后,点击容器--详情,就可以查看该python虚拟机的运行状态了

DS918+入手!配置Docker实现每日签到

在该容器详情中点击“终端机”,试试看print("helloword!") OK,成功安装python

DS918+入手!配置Docker实现每日签到

安装各种依赖包

下面就是用pip安装各种依赖包了。。。

现在安装python一般都集成了pip了,先查看一下。点击终端机--新增--bash--输入pip -V

可以看到pip的版本了,下面就开始安装各种依赖包。

DS918+入手!配置Docker实现每日签到

主要的几个包:Pillow pycryptodome requests rsa

实现语句:就在bash这个界面输入:pip install Pillow -i https://pypi.douban.com/simple

加粗的换成几个包的名字就可以了,后面的连接表示替换成国内的几个源,下面源选择性使用

清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:https://mirrors.aliyun.com/pypi/simple/
豆瓣:https://pypi.douban.com/simple/

Python实现自动签到

下面重头戏来了,网上找了不少自动签到的资源,发现都失效了,抓了包发现用了极验验证+rsa密码加密,so只好自己解决了。

首先详细介绍一下自动签到的原理:

首先我们手动打开浏览器 f12 登录网站抓一下包看看登录过程:

DS918+入手!配置Docker实现每日签到

密码是随便输的,提取下有用的数据,主要包括三个部分

1.极验验证

DS918+入手!配置Docker实现每日签到

geetest,搜下这个关键词,这个模块主要是用来防止比较简单的request的访问,区分机器与人,这个就是阻挡了之前大部分自动登录签到的脚本的罪魁祸首了

极验验证是一种在计算机领域用于区分自然人和机器人的,通过简单集成的方式,为开发者提供安全、便捷的云端验证服务。 与以往传统验证码不同的是,极验通过分析用户完成拼图过程中的行为特征,通过数据分析来判断是人还是机器。

直接站在巨人肩膀上吧,github能有拿来就能用的源码:

搜:Kevin-Cherish/geetest

2.获取密钥

看第二个有用的数据的图,pub_key,想到了啥?rsa加密啊!!!用来加密啥,往下看

DS918+入手!配置Docker实现每日签到

先把pub_key拿下来备用下:

pub_key_url = "https://zhiyou.smzdm.com/user/login/pre"
pub_key = (
session.get(pub_key_url, headers=headers).json().get("data").get("pub_key")
)

3.数据加密发送给服务器

观察post给服务端的数据,用户名被加密了,密码也被加密了。

DS918+入手!配置Docker实现每日签到

用户名应该是比较简单的加密方式,稍微试了下base64方式加密,搞定。

base64.b64encode(username.encode()).decode()

密码应该就是用rsa加密了,方法就是向服务器申请一次公钥,然后用公钥对密码进行加密,然后发送给服务端

key = base64.b64decode(pub_key.encode()).decode()
rsakey = RSA.importKey(key)
cipher = Cipher_pkcs1_v1_5.new(rsakey)
cipher_text = base64.b64encode(cipher.encrypt(pwd.encode(encoding="utf-8")))
value = cipher_text.decode('utf8')

一顿操作试了下:

geetest返回结果:({"message": "success", "success": 1, "score": "2", "validate": "***********"})登陆结果:{'redirect_to': '', 'error_code': 0, 'is_use_captcha': True, 'data': [], 'error_msg': ''}

果然登录成功,后面就是用request进行签到拉

checkin_url = "https://zhiyou.smzdm.com/user/checkin/jsonp_checkin?callback= &_={}".format(time.time() * 1000)

response = session.get(checkin_url, headers=headers)



群晖计划任务实现


实现签到以后,可以把数据存在数据库里面,然后让设置一个群晖的计划任务,每天等结果就好拉

控制面板---计划任务

DS918+入手!配置Docker实现每日签到

设置每日执行,以及计划任务的参数,然后等结果就好啦

DS918+入手!配置Docker实现每日签到

我把每天签到结果存在sqlite里面了,然后等待我的签到勋章吧,哈哈哈哈

DS918+入手!配置Docker实现每日签到


展开 收起
59评论

  • 精彩
  • 最新
  • lede签到插件不香吗?

    校验提示文案

    提交
    后面出个爬某乎小姐姐的 [高兴]

    校验提示文案

    提交
    在chrome store上下?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • ERROR: Invalid requirement:' pycryptodome\ xa0-i\ xaohttps://pypi. douban. com/simpl tint: It looks like a path. File ' pycryptodome i https://pypi. douban. com/simp le' does not exist.第一个安装正常后面全这样

    校验提示文案

    提交
    换一个源试试

    校验提示文案

    提交
    收起所有回复
  • 就为了每天签到,你这个投入有点大啊, [得逞] ,是不是今年能出220系列,我准备再等等,。918+对我来说还是性能过剩了

    校验提示文案

    提交
    签到只是一个附加彩头,主要还是放照片,玩docker,玩pt。

    校验提示文案

    提交
    这应该不需要群晖和docker。。。只要安装python就行。。。剩下的就是找一台不断电的机子 [不说话]

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • cookie有有效期吗?需要隔段时间更新一次吗?

    PS:2000天勋章没啥用,至今只领了1本纪念册、1把扇子、1个火漆印而已。

    校验提示文案

    提交
    我这相当于每天重新登陆一次哦

    校验提示文案

    提交
    但是cookie没有变化啊

    校验提示文案

    提交
    还有7条回复
    收起所有回复
  • 话说遇到偶尔pt站点限制访问,只能通过已有cookie才可以访问怎么办?

    校验提示文案

    提交
    保存登陆成功的呗,旧的失效就从新request.getcookies下。不懂这个情况是不是你说的

    校验提示文案

    提交
    最近我就遇到几个pt限制访问,是要保留旧cookie,重新获取是不行的

    校验提示文案

    提交
    收起所有回复
  • 后半段完全看不懂,强烈要求详细教程。。。。

    校验提示文案

    提交
  • N1 openwrt下安装docker再折腾他不香吗

    校验提示文案

    提交
  • 小白表示关于py的代码怎么写,也就是文中123部分怎么用,完全摸不着头脑

    校验提示文案

    提交
  • 之前看到两千天有超声波清洗机,刚好想买个玩玩,抓紧就是一顿补签,到了两千天,没了

    校验提示文案

    提交
  • 后面部分,对小白不太友好。看不懂了。

    校验提示文案

    提交
  • 看了半天,后半部分还是不会 [喜极而泣]

    校验提示文案

    提交
    真手滑,顶点成踩了。

    校验提示文案

    提交
    收起所有回复
  • 920马上就发布了,有种49年入国军的感脚

    校验提示文案

    提交
    920已经发布了…… 双核变四核,ddr3变ddr4,没了……

    校验提示文案

    提交
    收起所有回复
  • 高大上的感觉 回去试试

    校验提示文案

    提交
  • 改版梅林软件中心有签到狗,爽歪歪!

    校验提示文案

    提交
  • 用Py的qiandao源码就行,而且比这省事。

    校验提示文案

    提交
    哪里有啊,老哥?

    校验提示文案

    提交
    去看看
    这个也有docker版本,很好用

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 能学习强国签到吗? [大囧] [大囧] [大囧]

    校验提示文案

    提交
  • 记录下来,回头看看

    校验提示文案

    提交
  • 伸手党要一份源码 [高兴]

    校验提示文案

    提交
  • 电脑版的签到好像和手机版的不同步,我每天两边都签。。。

    校验提示文案

    提交
  • 一直手工签到的路过……

    校验提示文案

    提交
    我也是纯手工

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

啊肥爸爸

Ta还没有介绍自己

关注 打赏
最新文章 热门文章
450
扫一下,分享更方便,购买更轻松