[关闭]
@tenlee 2015-08-06T12:29:04.000000Z 字数 1001 阅读 2002

Python3实现HDUOJ模拟提交

Python


下午闲来无事,顺手一写

主要用到了 Requests 模块实现模拟登陆,提交.有中文说明文档
Beautiful Soup, 很强大的HTML/XML的解析器,没用上.
Python,50

Python代码

  1. #!/usr/bin/env python3
  2. #coding=utf-8
  3. import requests, json
  4. from bs4 import BeautifulSoup
  5. import os
  6. import os.path
  7. import time
  8. sub_dir = "/home/acm/Desktop/ACM_Code/HDUOJ/" #最后那个斜杠一定要加
  9. uname = input("请输入用户名: ")
  10. upass = input("请输入密码: ")
  11. #获取该目录下所有文件
  12. all_file = os.listdir(sub_dir)
  13. login_url = "http://acm.hdu.edu.cn/userloginex.php?action=login"
  14. sub_url = "http://acm.hdu.edu.cn/submit.php?action=submit"
  15. login_data = {'username': uname, "userpass": upass,
  16. "login":"Sign In"}
  17. #保持会话
  18. cookieJar = requests.cookies.RequestsCookieJar()
  19. session = requests.Session()
  20. #登陆
  21. login_resp = session.request("POST", login_url,
  22. cookies=cookieJar, data=login_data)
  23. for fname in all_file:
  24. proid = int(fname[3:7])
  25. subcode = open(sub_dir+fname).read()
  26. print("正在提交" + str(proid))
  27. submit_data = {"check": 0, "problemid": proid,
  28. "language": 0, "usercode":subcode}
  29. #提交
  30. r = session.request("POST", sub_url, cookies=cookieJar,
  31. data=submit_data)
  32. print("提交完成")
  33. time.sleep(1)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注