在树莓派上使用JD-Base 自动薅取京东羊毛
前言:
狗东的活动太丰富了,参与需要耗费大量时间。之前看到大佬们使用脚本代替人力来做这件事,甚至GitHub上还有开源项目。于是我决定跟随大佬脚步,给自己也整一个,部署在树莓派上。经过了解,脚本可以使用docker部署,也可以自己搭建环境。但貌似GitHub上的项目仓库都被封的差不多了,这里考虑用docker。
操作:
安装docker:
使用docker部署项目,自然要先安装docker,听说这个东西很简单,我在官网找到了安装说明,说的是Docker Engine有三种安装方法,分别是从存储仓库安装、从DEB包安装和使用shell脚本安装。而树莓派只支持从脚本安装,貌似没得选呀,我此处也不研究到底有没有的选,就按官方文档来吧。注意,docker的安装一般是需要root权限的。
首先,我们需要卸载旧的版本,执行以下命令,如果回显 none of these packages are installed
说明就可以了。
sudo apt-get remove docker docker-engine docker.io containerd runc
执行以下命令获取安装脚本并运行它,然后等待其自动完成Docker Engine的安装。完成安装后Debian类系统下程序就运行了。
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Tips:
-
如果以后需要卸载docker,使用以下命令卸载Docker Engine、CLI、和Containerd packages:
sudo apt-get purge docker-ce docker-ce-cli containerd.io
-
使用以下命令删除相关的镜像、配置信息、文件等:
sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
安装Docker Compose:
作者提供了一个 compose.yml
文件,它是 Docker Compose 工具的配置文件。通过此工具可以快速部署、分享docker项目。所以此处我们还需要安装它。如果使用的是Windows或Mac下的桌面版本,那应该已经带有Docker Compose,而Linux需要单独安装。此处我使用的树莓派,不支持直接二进制安装,所以通过pip安装。
运行此命令以安装依赖:
sudo apt install python3-dev python3-pip libffi-dev gcc libc-dev cargo make
通过pip安装 Docker Compose,此时前面的 python3 -m
表示将调用Python3处理,详见参考。
sudo python3 -m pip install docker-compose
Tips:
-
如果您需要卸载Docker Compose,可运行以下命令使用pip安装的本工具卸载:
sudo python3 -m pip uninstall docker-compose
部署JD-Base:
首先创建一个空目录,文件名自定,比如我是用的jdauto。然后我们把作者提供的 docker-compose.yaml
放入到之前目录,然后运行以下命令开始构建:
sudo docker-conpose up
部署完成后会看到相关登录信息,比如端口号默认是 5678
,用户名是 admin
,密码是 adminadmin
。
确认无误按 Ctrl + X
停止。下次如果想要后台启动,可以使用 -d
选项,这样服务就会以分离模式(detached)运行。
修改配置信息:
JD-Base的服务运行起来后,我们便可以通过IP:5678访问配置页面了,输入用户名和密码登录。
向下滚动,如下所示,找到通知Token处,选择一种通知方式进行设置。
################################## 定义通知TOKEN(选填) ##################################
## 想通过什么渠道收取通知,就填入对应渠道的值
## 1. ServerChan,教程:http://sc.ftqq.com/3.version
export PUSH_KEY=""
## 2. BARK,教程(看BARK_PUSH和BARK_SOUND的说明):https://github.com/RikudouPatrickstar/jd_scripts/blob/master/githubAction.md
—————————略—————————————
回到上面最开始处,设置Cookie,可以看到扫码获取已经无效了,浏览器获取有效期很短。所以使用仓库自带脚本wskey.js来自动更新cookie。
在容器的config目录下的wskey.json文件中填写wskey,wskey需要自行抓包。抓包方式本文不展开,下面会附链接。
-
填写格式,有几个号写几行,没用的行一定要删掉:
[ "pin=xxx;wskey=xxxx;", "pin=xxx;wskey=xxxx;", "pin=xxx;wskey=xxxx;" ]
-
抓包方法:
以上信息填好后我们需要回到网页的配置设定中,将第一个cookie中随意填入几个字母,否则脚本会因没有cookie不执行。
然后点击手动执行选项卡,在脚本名称处输入 wskey
,然后点击提交,等待其完成执行,然后就可以在配置设定中看到正确的Cookie了。
去Linux shell中使用 sudo docker-compose restart
命令重启docker。如果处于前台运行,使用 Ctrl + C
停止,然后使用 sudo docker-compose up -d
在后台启动。
在后台以分离模式运行时,使用
sudo docker-compose stop
可以停止服务。
此时,我们便完成了整个部署,里面某些任务可能当天不会执行,可以去手动执行里面按需手动运行一下。