为 HUSTOJ 打造的自动提交机
- 自动化 - 使用 Selenium with Python 实现自动化交题
- 同步化 - 支持自动爬取大号提交记录以提交至小号
- 定制化 - 支持自定义选择题目提交
- 连续化 - 支持避免提交已经通过的题
Tips: 推荐使用 Python 3.10+ 版本构建运行。
- 安装 Python 及依赖库:
$ choco install python
$ pip install selenium
$ pip install requests
$ pip install lxml
下载符合自己浏览器版本的 chromedriver,并加入 PATH 路径。
- 打开终端,运行:
$ git clone https://github.com/yzxoi/Automatic-Submitter-for-HUSTOJ.git
- 修改 main.py 内的配置文件:
$ vi Automatic-Submitter-for-HUSTOJ/main.py
- 运行 main.py:
$ python main.py
- 填写 HUSTOJ 网址 URL。
- 填写主账号提交者 MAIN_SUBMITTER。该账号应含有某一种语言所有正确提交记录。
- 填写提交语言 LANGUAGE。(对应代码表见附录)
- 填写子账号(bot 账号) USER_ID。
- 填写子账号(bot 账号) PASSWORD。
- 填写主账号 Cookie:替换
<cookie>
。 - 子账号必须至少提交一题。
URL = "http://syzoj.hustoj.com/"
MAIN_SUBMITTER = "std"
LANGUAGE = "6"
USER_ID = "spider"
PASSWORD = "spider123456"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36",
"Cookie": "<cookie>"
}
登录主账号,打开 F12 开发者管理工具,打开控制台 Console,输入:
document.cookie
其所返回的字符串即为 cookie。
注意当运行本程序时要确保主账号处于登录状态。
语言 | 代码 |
---|---|
C | 0 |
C++ | 1 |
Java | 3 |
Python | 6 |
PHP | 7 |
C# | 9 |
JavaScript | 16 |
Go | 17 |
SQL | 18 |