科学与技术彻底改变了生活,但记忆、传统和神话限定了我们的反应。
阿瑟·施莱辛格(Arthur Schlesinger),历史学家
这是笔者使用Docker的第一个功能,因为笔者是个京东较重度的使用者,每天要做大量的任务来薅羊毛领京豆,而这个功能让我从重度使用者转变成中度使用者,节约了一部分薅羊毛的时间。
在薅羊毛之前,我们还是一步步来看如何做到自动薅羊毛。本文内容需要一定的耐心和一些计算机知识,如果你赚麻烦或者整不明白,可以上笔者的车:挂京东上车,进入页面后,通过扫码、唤醒京东、绑定京东的手机号验证码等方式即可上车。
第一步,安装 Docker 软件
先上图,Docker插件要安装哪些软件包:
一共5个,在更新列表后,可以直接安装“luci-i18n-dockerman-zh-cn”,系统会自动补全依赖的软件包,然后再安装没有自动安装的那个就行了。至此,第一步完成。
第二步,拉取镜像&部署容器
安装好以后,Docker 会自动运行,刷新软路由的界面后,会发现菜单里多了“Docker”这个菜单(如果没有,可以重新登录一下软路由),看图:
那为什么拉取镜像和部署容器放在一起呢?因为OpenWRT的Docker支持部署容器时拉取镜像,所以这两步可以合二为一。当然,你也可以先去镜像界面拉好镜像,再到容器页面来部署。不过作为懒人,我们还是把能省的步骤给省下来,这样也让更多的人更轻松地掌握这项技能。
此时,我们可以点击 Docker 菜单中的容器,也可以点击上图左下角容器框里的数字。
来,看图说话,我们要挂京东的任务要用到青龙面板,就是图中的第三个容器。如果你从来没有安装和使用过 Docker,那么不会存在图中的三个容器,需要点左下角的“新增”来添加。
新增后,直接点命令行,复制如下内容到命令行的框内:
docker run -dit \
-v /opt/docker/ql:/ql/data \
-p 5700:5700 \
--name qinglong \
--hostname qinglong \
--restart always \
whyour/qinglong:latest
其中:
- -v是挂载路径,把软路由的路径,挂载到容器中的路径。
- -p 后的5700:5700是你要使用到的端口,前面是映射到软路由的端口,后面的是容器中使用的端口。本例中,可以用“http://<软路由的 IP 地址>:5700”访问青龙面板。
- –name 设定容器的名字,今后要用到的。
- –hostname 是容器的设备名。
- –restart 是软路由重新后,该容器是否自动运行,这里的always是总是自动运行。
- 最后一行是要用到的镜像,如果没有,Docker 会为你自动拉取,所以笔者前面说拉取和部署可以合二为一。
然后点两个“提交”,待 Docker 完成拉取,会自动回到容器界面,此时就能看到qinglong容器了,如果没有自动运行,可以打上容器前的勾,再点“启动”。这样,青龙面板就已经运行了。
第三步,初始化青龙面板
点击“开始安装”后,第一个是通知设置,如果你没有自动通知的机器人,可以先不设,以后可以再添加,第三个账户设置就是为自己设置一个好记的用户名和密码,用于以后管理和配置青龙面板。然后就可以进入了青龙面板添加脚本了。
第四步,添加脚本库
配置好了青龙面板,已经享用羊毛进了一步了。但并不意味着你已经可以薅羊毛了,毕竟青龙面板只是一个提供脚本运行的环境和场所,真正起作用的是脚本,所以我们得添加脚本库。
库名 | 地址 |
---|---|
【Faker 2 助力池版】 | ql repo https://git.metauniverse-cn.com/https://github.com/shufflewzc/faker2.git “jd_|jx_|gua_|jddj_|jdCookie” “activity|backUp” “^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_graphics_validate|ql|JDSignValidator|magic|depend|h5sts” “main” |
【Faker 3 纯净版】(无助力池,本地账号助力) | ql repo https://git.metauniverse-cn.com/https://github.com/shufflewzc/faker3.git “jd_|jx_|gua_|jddj_|jdCookie” “activity|backUp” “^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_graphics_validate|ql|JDSignValidator|magic|depend|h5sts” “main” |
6dylan6/jdpro(集合库) | ql repo https://github.com/6dylan6/jdpro.git “jd_|jx_|jddj_” “backUp” “^jd[^_]|USER|JD|function|sendNotify” |
Curtinlv 仓库 | ql repo https://github.com/curtinlv/JD-Script.git |
gys619/Absinthe(集合库) | ql repo https://github.com/gys619/Absinthe.git “jd_|jx_|jddj_|gua_|getJDCookie|wskey” “activity|backUp” “^jd[^_]|USER|utils|ZooFaker_Necklace|JDJRValidator_|sign_graphics_validate|jddj_cookie|function|ql|magic|JDJR|JD” “main” |
KingRan/KR(集合库) | ql repo https://github.com/KingRan/KR.git “jd_|jx_|jdCookie” “activity|backUp” “^jd[^_]|USER|utils|function|sign|sendNotify|ql|JDJR” |
smiek2121(开卡库) | ql repo ql repo https://github.com/smiek2121/scripts.git “jd_|gua_” “” “ZooFaker_Necklace.js|JDJRValidator_Pure.js|sign_graphics_validate.js|cleancart_activity.js|jdCookie.js|sendNotify.js” |
Yun-City/City(集合库) | ql repo https://github.com/Yun-City/City.git “jd_|jx_|gua_|jddj_|getJDCookie” “activity|backUp” “^jd[^_]|USER|function|utils|sendnotify|ZooFaker_Necklace|jd_Cookie|JDJRValidator_|sign_graphics_validate|ql|magic|cleancart_activity” |
Zy143L/wskey(wskey转换库) | ql repo https://github.com/Zy143L/wskey.git “wskey” |
混沌 | ql repo https://github.com/whyour/hundun.git “quanx” “tokens|caiyun|didi|donate|fold|Env” |
龙珠 | ql repo https://github.com/whyour/hundun.git “quanx” “tokens|caiyun|didi|donate|fold|Env” |
表中的库是笔者从网上收集的,有些可能已经停更或失效了,所以可以自己去尝试,如果不愿意尝试的,就用Faker的这两个版本,这是笔者目前在使用的脚本库。
第一个是带助力池的,有些任务会为作者和其他挂友助力,你要把自己的助力码上传到作者提供的助力池,才有可能会让别人给自己助力。
第二个不带助力池,脚本会在你设定好的账户之间互相助力。
所以如果你是单账号挂机,推荐带助力池版本的;多账号挂机,可以使用无助力池版本。
青龙面板支持两种方法添加库,为了便于区分和管理,笔者建议使用“订阅管理”页面来添加库。具体操作如图:
如果确定后没有拉取脚本,可以点一下操作下面的第一个按钮运行。等一会儿就可以看到定时任务中会有很多任务了。如果没有,请查看网络是否畅通,库是否有效。
第五步,添加依赖
这里不作过多说明了,看图和表。
NodeJs | Python3 | Linux |
---|---|---|
@types/node | aiohttp | bizCode |
axios | asyncio | bizMsg |
cheerio | canvas | Lxml |
cjs | depend | wget |
crypto-js | ds | gcc |
date-fns | jieba | |
dotenv | moment | |
download | ping3 | |
ds | PyExecJS | |
execjs | requests | |
form-data | ||
fs | ||
global-agent | ||
got | ||
jieba | ||
js-base64 | ||
jsdom | ||
jsdom -g | ||
json5 | ||
moment | ||
png-js | ||
prettytable | ||
require | ||
tough-cookie | ||
tslib | ||
ts-md5 | ||
ts-node | ||
tunnel | ||
typescript | ||
ws | ||
ws@7.4.3 |
第六步,添加变量
你以为之前的设置搞定就万事大吉了?图样图森破,因为青龙还不知道这些脚本要为谁运行呢……
我们要在这个地方添加你登录京东的 cookie,那么这个 cookie 怎么来呢?
目前,只有通过手机 APP 登录是存续期最长的,只要你的账号不登出,就一直有效,但这个获取的要求比较特殊,安卓机需要安装特殊的 APP,苹果机目前我还没发现有相关 APP(主要是目前手上没有苹果,没有去关心过),我们先使用方便一些的——手机号验证登录。一般我们的京东账号都会绑定一个手机号,我们就可以在电脑网页,通过手机号登录京东,并通过开发者工具获取这个 cookie。
这个方法用系统自带的 Edge 浏览器就能做到,右键点击 Edge 浏览器的图标→选择“新建 InPrivate 窗口(I)”→按 Ctrl+Shift+I 或 F12 打开“开发者工具”→在“开发者工具”里选择“网络”→在地址栏里输入“m.jd.com”。
然后在页面中点“登录”,会出现登录注册页面:
然后输入手机上收到的验证码,点登录,成功后,再来看右边的“开发者工具”:
最后,把复制下来的 cookie 粘贴到青龙面板新建的变量值里,确定。
恭喜你,你的京东账号可以自动薅羊毛了,可以每天愉快地看着京豆上涨。
如果你没有搞定,也没关系,可以上笔者的车,上车地址在本文开头已经公布过了,这里就不再重复了。
下面附上定时任务的定时规则,可以作为参考。
*/5 * * * * ? #每隔 5 秒执行一次
0 */1 * * * ? #每隔 1 分钟执行一次
0 0 2 1 * ? * #每月 1 日的凌晨 2 点执行一次
0 15 10 ? * #MON-FRI 周一到周五每天上午 10:15 执行
0 15 10 ? 6L #2002-2006 2002 年至 2006 年的每个月的最后一个星期五上午 10:15 执行
0 0 23 * * ? #每天 23 点执行一次
0 0 1 * * ? #每天凌晨 1 点执行一次
0 0 1 1 * ? #每月 1 日凌晨 1 点执行一次
0 0 23 L * ? #每月最后一天 23 点执行一次
0 0 1 ? * L #每周星期天凌晨 1 点执行一次
0 26,29,33 * * * ? #在 26 分、29 分、33 分执行一次
0 0 0,13,18,21 * * ? #每天的 0 点、13 点、18 点、21 点都执行一次
0 0 10,14,16 * * ? #每天上午 10 点,下午 2 点,4 点执行一次
0 0/30 9-17 * * ? #朝九晚五工作时间内每半小时执行一次
0 0 12 ? * WED #每个星期三中午 12 点执行一次
0 0 12 * * ? #每天中午 12 点触发
0 15 10 ? * * #每天上午 10:15 触发
0 15 10 * * ? #每天上午 10:15 触发
0 15 10 * * ? * #每天上午 10:15 触发
0 15 10 * * ? #2005 2005 年的每天上午 10:15 触发
0 * 14 * * ? #每天下午 2 点到 2:59 期间的每 1 分钟触发
0 0/5 14 * * ? #每天下午 2 点到 2:55 期间的每 5 分钟触发
0 0/5 14,18 * * ? #每天下午 2 点到 2:55 期间和下午 6 点到 6:55 期间的每 5 分钟触发
0 0-5 14 * * ? #每天下午 2 点到 2:05 期间的每 1 分钟触发
0 10,44 14 ? 3 WED #每年三月的星期三的下午 2:10 和 2:44 触发
0 15 10 ? * MON-FRI #周一至周五的上午 10:15 触发
0 15 10 15 * ? #每月 15 日上午 10:15 触发
0 15 10 L * ? #每月最后一日的上午 10:15 触发
0 15 10 ? * 6L #每月的最后一个星期五上午 10:15 触发
0 15 10 ? * 6L #2002-2005 2002 年至 2005 年的每月的最后一个星期五上午 10:15 触发
0 15 10 ? * 6#3 #每月的第三个星期五上午 10:15 触发
青龙面板只能挂京东吗?当然不是啦,下次我们会聊聊青龙面板另外一个用途,当然了,如果你会开发脚本,那用途就更多了。好了,本文就到这里了,有什么疑问可以回复交流。
感谢阅读本站的文章,如果对本站有什么好的建议,也欢迎评论区留言交流!🌹🌹🌹