GitHub 执行定时任务之巴奴会员签到

经常忘记去点那么一下,人到中年记忆力衰退的厉害。所以…

前言

巴奴算是签到算是比较简单的那种,没有太多的限制,可能获取积分的大多是人都还是要去门店的吧,也没必要做太多的限制。

打开签到每日提醒后,自动推送的地址是随便拿一个浏览器就能打开的网页。

这一切变得就简单了许多,通过复制地址,打开像这样一样。

https://cdn-scp.banu.cn/scp/mobile/index.html#/sign-rule?member_id=xxxxxxxxxxxxxxx 

打开页面效果就是这样(我这里是签过了)

没签过会有一个签到按钮,通过F12调取查看按钮的class名称可以看到是.sign-con盒子下面的.sign
GitHub 执行定时任务之巴奴会员签到_第1张图片

开始写代码

正文

环境

  • python
    • conda 方便控制版本、依赖环境
    • selenium pyppeteer 本来打算使用selenium配半天没配好我太菜了
  • vscode 主要用于本地调试

代码

index.py

import asyncio
import time
from pyppeteer import launch

async def main():
    # 进入有头模式
    browser = await launch(headless=False, dumpio=True, autoClose=False,  args=['--no-sandbox', '--window-size=1920,1080', '--disable-infobars'])
    # 打开新的标签页
    page = await browser.newPage()
    # 页面大小一致
    await page.setViewport({'width': 1920, 'height': 1080})
    # 访问签到页面
    await page.goto('https://cdn-scp.banu.cn/scp/mobile/index.html#/sign-rule?member_id=xxxxxxxxxx')
    # 等待签到按钮加载出来
    await page.waitForSelector('.sign-con>.sign')
    # 再等1s便于观察效果
    time.sleep(1)
    # 点击这个标签
    await page.click('.sign-con>.sign')
    # 再等2s便于观察点击效果
    time.sleep(2)

if __name__ == '__main__':
    asyncio.get_event_loop().run_until_complete(main())  # 调用

requirements.txt 依赖文件

pyppeteer===1.0.2

.github\workflows\python-app.yml 新建github的yml文件

name: Python application
on:
  push:
    branches: ["main"]
  pull_request:
    branches: ["main"]
  schedule:
    - cron: "0 12 * * *" # 这里指的是每天12点执行 因为时差和延迟不同 北京时间 20点左右
permissions:
  contents: read
jobs:
  build:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v3
      - name: 设置版本
        uses: actions/setup-python@v3
        with:
          python-version: "3.7"
      - name: 安装依赖
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
      - name: 运行程序
        run: |
          python index.py

可以在github仓库Actions查看效果

img

本地调试

# 使用conda新建环境
conda create --name build-915 python==3.10
# 切换环境
conda activate build-915
# 安装依赖
pip install -r requirements.txt -i https://pypi.douban.com/simple/
# 运行测试
python index.py

你可能感兴趣的:(#,GitHub,github,actions,python,自动签到)