Repository navigation
Expand file tree
/
Copy pathspider.py
More file actions
52 lines (51 loc) · 1.76 KB
/
Copy pathspider.py
File metadata and controls
52 lines (51 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
"""
爬取自己OJ通过的代码
"""
import requests
import os
os.makedirs("src", exist_ok=True)
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"}
data = {
"username": "", # 填写用户名
"password": "" # 填写密码a
}
init_url = "http://10.216.217.131:9999/api/profile"
login_url = "http://10.216.217.131:9999/api/login"
problems_url = "http://10.216.217.131:9999/api/contest/problem?contest_id=3"
submission_url = "http://10.216.217.131:9999/api/contest_submissions"
code_url = "http://10.216.217.131:9999/api/submission"
submission_params = {
"myself": 1,
"result": None,
"username": None,
"page": 1,
"contest_id": 3,
"limit": 12,
"offset": 0
}
language_suffix = {
"C": ".c",
"C++": ".cpp",
"Java": ".java",
"Python3": ".py",
"Python2": ".py",
"Golang": ".go"
}
session = requests.Session()
session.headers["User-Agent"] = headers["User-Agent"]
session.get(url=init_url)
session.headers["X-CSRFToken"] = session.cookies.get("csrftoken")
session.post(url=login_url, data=data)
problems = session.get(url=problems_url).json()
for problem in problems["data"]:
if problem["my_status"] == 0:
submissions = session.get(submission_url, params={
**submission_params, "problem_id": problem["_id"]}).json()
for submission in submissions["data"]["results"]:
if submission["result"] == 0:
subcode = session.get(
code_url, params={"id": submission["id"]}).json()["data"]
with open("src/" + subcode["problem"] + language_suffix[subcode["language"]], "w") as f:
f.write(subcode["code"])
break