# py自动预约脚本 **Repository Path**: iamjaven/automatic-reservation-learning ## Basic Information - **Project Name**: py自动预约脚本 - **Description**: 尝试给各常用的预约平台写一个预约脚本 - **Primary Language**: Python - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2023-09-17 - **Last Updated**: 2024-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 预约系统开放预约时间 06:30~22:00 **过了凌晨12点就不要测试了,12点过后执行HTTP请求时会出现SSL相关的错误** 异常处理还没完善,没有配置机器人的话,把以下代码删掉,以免报错
`booking` 中的 `Bot_qqplus` 函数
有时候有些账号会跳出滑动验证的界面,这个我今天刚遇到,但一会又没了,所以还没添加上对应的解决方案 Md文件撰写练习
https://markdown.com.cn/basic-syntax/line-breaks.html Cron表达式生成器
https://cron.qqe2.com/ QQ机器人项目
https://gitee.com/changwenpeng/gocqhttp-qqsign # 启动方式 `python命令 index.py ` qsign启动方案 bash bin/unidbg-fetch-qsign --bashPath=txlib/8.9.71
- qsign安装参考视频
https://www.bilibili.com/video/BV1cV4y187ak/
- debian change glibc version 参考博客
https://juejin.cn/s/debian%20change%20glibc%20version 关于screen命令
``` 1、创建:screen -S name 2、查看有多少会话:screen -ls 3、恢复:screen -r name 4、先恢复没有则创建:screen -R name 5、删除:screen -S name -X quit 6、指定作业离线:screen -d name screen -ls #查看已建的screen ID(保持只有一个xdd会话,多的话可能运行不正常,百度screen删除会话命令) screen -r xdd #连接已经创建的screen窗口 screen -S qsign (新建qsgin终端界面) 在终端页面执行bah指令 按Ctrl + a + d 退出 ``` 定时crontab任务--每天上午六点32分运行预约脚本
`32 6 * * * cd /root/pyproject/automatic-reservation-learning && python3 ./booking.py >> ./pylog.md ` # A-还需要做的 - 一、修改整体配置文件,解耦合
1、把多个账号及座位号写到一个文件里
2、同个账号可以预约今天或明天的多个座位(一个没约上,可以换另一个约)
Ps:这样要是某个时间,系统出现堵塞,脚本也可以及时停止,不至于多个账户多次请求
- 二、做一个定时任务的客户端(云函数?)
1、可以在手机或者各种终端上面 选择合适的脚本与参数 设置定时任务
2、方便任务的更新
- 三、优化日志
1、针对不用的错误分支,设置报错日志,方便后期的审查 2、增加qq微信机器人提醒,用邮箱只有自己能看到,场景太单一 3、完善自定义的异常类 - 四、想用go把代码重构一下,听说可以节省运行内存
# B-需要配置的有 ## 1、基本信息 login.py -- 填写账号,预约日期,座位号(座位号要是3位数,不满三位数的要加前面加`0`)等信息
wx_push.py -- 填写push的key(可以接受预约结果)
## 2、运行库 (记得给文件夹权限 -- sudo chmod -R 777 filename) node版本--18.18.0 python版本--3.9.13 ### 安装node库 Error: Cannot find module 'crypto-js' 首先安装node.js
安装crypto-js模块
项目内安装 `npm install crypto-js` npm install crypto-js ### 安装python库 No module named 'lxml'
首先安装 python 环境
--代理方式安装 requests 模块
`pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple/` --代理方式安装 lxml 模块
`pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple/` --代理方式安装 execjs 模块
`pip install pyExecJs -i https://pypi.tuna.tsinghua.edu.cn/simple/` --代理方式安装 selenium 模块
`pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/` pip install EasyProcess pip install xvfbwrapper pip install pyvirtualdisplay xvfb