天使动漫论坛 多账户 自动签到/打工 Python程序

前言

你是否刚来天使动漫论坛,却因天使币不足又没有时间每天签到打工,购买不到自己想要的东西而伤心甚至退站?

你是否因每天定时签到打工而厌倦?

你是否因错过了连续签到而懊恼?

——这个程序,可以减少你的烦恼,让你保持每天签到打工。

  • 本教程适用于任何能安装Python 3、Python 3 pip、Google Chrome的设备,教程在64位 Ubuntu Server 18(无桌面)和Windows环境下演示,其它系统类似。
  • 本教程需要有基本的Linux知识。
  • 有的网站需要魔法上网,你懂的。

所有代码均在Root环境进行,注意不要误删除。

准备

说明:教程以一台一直运行程序的Ubuntu服务器和一台Windows电脑用来获取登录Cookies为示例。
  • 你需要一台安装有Chrome,带桌面环境的电脑来获取登录Cookies,这里以Windows为例,带桌面环境的Linux也可以。
  • 为保持程序在后台运行,建议将程序放在Linux服务器上,使用screen保持运行。

Python环境

两个系统都要部署类似的Python环境。

Ubuntu 服务器

  • 安装Python 3、Python 3 pip、git、unzip。
    apt install python3 python3-pip git unzip
  • 将Python 3、Python 3 pip设为系统级默认程序。
    rm /usr/bin/python
    rm /usr/bin/pip
    ln -s /usr/bin/python3 /usr/bin/python
    ln -s /usr/bin/pip3 /usr/bin/pip
  • 升级并更换pip软件源(如果服务器在国外可省略这一步)。
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  • 安装必要组件,参见项目Github
    pip install selenium~=3.141.0 schedule~=1.1.0 requests~=2.26 urllib3==1.25.11

Windows 电脑

  • Python官网下载最新版本的Python程序,在安装时记得勾选添加PATH。
  • 管理员身份打开cmd,Powershell或Windows终端。
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    pip install selenium~=3.141.0 schedule~=1.1.0 requests~=2.26 urllib3==1.25.11

配置Selenium的ChromeDriver

Ubuntu 服务器

  • 下载并安装最新的Google Chrome(这里的安装命令只适用于Debian系Linux,需魔法上网)。
    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    dpkg -i google-chrome-stable_current_amd64.deb

    dpkg装完后会弹出一大堆错误,我们下一步修复。

    apt -f install

    这时会弹出一大堆要安装的程序,咬咬牙装上。

  • 执行google-chrome试启动,有提示Running as root without --no-sandbox is not supported.即可。
  • 下载ChromeDriver
    LATEST=$(wget -q -O - http://chromedriver.storage.googleapis.com/LATEST_RELEASE)
    wget http://chromedriver.storage.googleapis.com/$LATEST/chromedriver_linux64.zip
    unzip chromedriver_linux64.zip
    chmod +x chromedriver
    mv chromedriver /usr/bin/
  • 测试:将以下内容保存为test.py文件,然后用python test.py执行,等待一会,正常输出我的网站标题即可。
    from selenium import webdriver
    options = webdriver.ChromeOptions()
    options.add_argument('--headless')
    options.add_argument('--no-sandbox')
    driver = webdriver.Chrome(chrome_options=options)
    driver.get("https://www.liups.site/")
    print(driver.title)

Windows 电脑

  • Google Chrome官网下载并安装浏览器。
  • 安装好后,在设置里查看Chrome的版本,然后到https://chromedriver.chromium.org/downloads下载对应版本的ChromeDriver(大版本相同即可),如图。
    ChromeDriver 版本
  • 打开新页面后,点击下载chromedriver_win32.zip即可。
  • 下载完后,把压缩包解压,将exe文件复制到C:\Windows\System32目录下以便访问。
  • 测试:将以下内容用记事本保存为test.py文件,然后用python test.py执行,等待一会,正常输出我的网站标题即可。
    from selenium import webdriver
    options = webdriver.ChromeOptions()
    options.add_argument('--headless')
    options.add_argument('--no-sandbox')
    driver = webdriver.Chrome(chrome_options=options)
    driver.get("https://www.liups.site/")
    print(driver.title)

获取登录Cookies

  • 在Windows系统下(桌面Linux也可),打开项目地址,下载项目的zip打包文件(绿色「Code」,「Download ZIP」)。
  • 将文件夹(TSDM-coin-farmer-main)复制到桌面。
  • 打开记事本,创建一个名为credentials.py的文件,添加内容如下
    TSDM_credentials = [['<user>', '<pswd>']]

    <user><pawd>换成对应的用户名和密码即可。
    (可选)多账户设置

    TSDM_credentials = [['user1', 'pswd1'],['user2', 'pswd2']...]
  • 打开TSDM-coin-farmer-main文件夹目录内的src文件夹,将credentials.py文件复制到此处。
  • 用记事本打开farmer.py文件,在第八行的from dlc_stage1st import do_read_s1的前面添加#号注释掉。
  • 打开cmd,Powershell或Windows终端,用cd命令导航到文件夹内的src目录下。你也可以直接在src下Shift+鼠标右键然后打开Powershell。
  • 在src目录下执行命令:python farmer.py -r
  • 然后会弹出浏览器,输入验证码,勾选「自动登录」,然后登录即可。
  • 切换回终端,可以看到提示cookie刷新完毕,在src目录下也生成了cookies.json
  • 用sftp将cookies.jsoncredentials.py上传到Linux服务器。至此,Windows下的操作完成。

部署软件

  • 回到Linux服务器终端,git clone https://github.com/Trojblue/TSDM-coin-farmer.git获得项目。
  • 将刚刚上传到服务器的cookies.jsoncredentials.py移动到TSDM-coin-farmer/src目录里。
  • 更改目录下所有文件的所有者为root:chown -R root:root TSDM-coin-farmer
  • 编辑farmer.py文件,在第八行的from dlc_stage1st import do_read_s1的前面添加#号注释掉。
  • 编辑actions.py文件,在定义的get_webdriver函数下添加如下内容(注意缩进为4空格),如图
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-dev-shm-usage')
    options.add_argument('--headless')
    options.add_argument('blink-settings=imagesEnabled=false')
    options.add_argument('--disable-gpu')
    actions.py 添加内容
  • 切换到TSDM-coin-farmer/src目录下,执行python farmer.py -s -n,显示正在打工、正在签到,且没有报错即可。
  • 等待一会后,按Ctrl+C终止程序。
  • 安装screen程序,保证程序一直运行:apt install screen
  • 建立screen:screen -S tsdm
  • 执行python farmer.py -s -n
  • 成功则类似下图
    部署成功

说明(转自Github)

使用

  1. python farmer.py -r 刷新所有账户的cookie。
  2. python farmer.py开始定时任务, 在6小时后开始第一轮打工, 每天随机时间签到。
  3. 如果需要立刻打工/签到,可以使用-n参数。
  4. 补充:建议添加-s参数,可更好地模拟浏览器的点击行为。
usage: farmer.py [-h] [-s | -r] [-n]

optional arguments:
  -h, --help      show this help message and exit
  -s, --selenium  运行: 使用selenium模式(不填默认用post模式)
  -r, --reset     刷新cookie
  -n, --now       立刻运行打工和签到

结构

  • farmer.py: 主程序
  • actions.py: cookie/工具类函数
  • v1_selenium.py: selenium方式相关函数
  • v2_request.py: post方式相关函数
  • credentials.pycookies.json: 存储登录信息,请不要上传。

其他

  • 需要urllib3==1.25.11, 因为这个bug
  • credentials.py怕账户泄露也可以不用, 它只是登录的时候自动把账户密码填进输入框, 改一下代码自己手动填也一样。
  • selenium模式下可能会报各种warning, 能正常签到的话无视就好。
  • 因为某些神必原因post模式打工有时候会工作失败, 建议手动重试一次, 或者用selenium。

注意

  • 如果在自动打工时提示作弊什么的,那一次打工就作废了,等六个小时会再次动自动打工。
  • 自动登录的Cookies的有效期好像是一个月,一个月后需要重新在Windows下执行python farmer.py -r获取Cookies,再上传到服务器。
  • 作者的程序随时可能更新,请关注https://github.com/Trojblue/TSDM-coin-farmer

后记

声明:发布这篇教程并不是因为我很厌烦签到,这个程序也不是我开发的;相反,每天登录论坛,在水区畅聊给我带来了很多乐趣。说实话,天使论坛是我第一个找到归属感,让我有家的感觉的社区。你在水区发的几乎任何内容,都有站友回复交流。欢迎加入这个大家庭!

我的论坛推广链接:https://www.tsdm39.net/?fromuid=1935659

项目的Github地址https://github.com/Trojblue/TSDM-coin-farmer

更多教程,也欢迎继续在本站阅读。

参见

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注