| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import requests
- import json
- import pymysql
- import datetime
- # def getHeader():
- # return {
- # "User-Agent":"Mozilla/5.0 (Linux; Android 10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.120 MQQBrowser/6.2 TBS/045511 Mobile Safari/537.36 MMWEBID/1122 MicroMessenger/7.0.20.1781(0x27001439) Process/toolsmp WeChat/arm64 NetType/4G Language/zh_CN ABI/arm64"
- # }
- db = pymysql.connect(host="localhost", user="root", password="password", db="zk")
- # json时间问题和bytes问题解决
- class JsonEncoder(json.JSONEncoder):
- def default(self, obj):
- if isinstance(obj,datetime.datetime):
- return obj.strftime("%Y-%m-%d %H:%M:%S")
- elif isinstance(obj,bytes):
- return str(obj, 'utf-8')
- else:
- return json.JSONEncoder.default(self,obj)
- def start():
- session = requests.session()
- f_login(session)
-
- def f_login(session):
- session.post("https://sdjrzk.xuanyun.tech/api/auth/user/login/", {"username":"ZK_USER","password":"ZK_PASSWORD"})
- f_getCourse(session)
- def f_getCourse(session):
- r = session.get("https://sdjrzk.xuanyun.tech/api/course/course/?page_size=100")
- data = json.loads(r.text)
- res = data["results"]
- cursor = db.cursor()
- sql="call insert_course(%s)"
- cursor.execute(sql, r.text)
- db.commit()
- #ids = []e
- for i in res:
- #ids.append(i["id"])
- f_getQuestionList(session, str(i["id"]))
- def f_getQuestionList(session, id):
- r = session.get("https://sdjrzk.xuanyun.tech/api/exam/paper/?owner_type=50&relation_limit=course.course&page_size=300&owner_id="+id)
- data = json.loads(r.text)
- res = data["results"]
- cursor = db.cursor()
- sql="call insert_question_list(%s, %s)"
- cursor.execute(sql, (id, r.text))
- db.commit()
- for i in res:
- f_getQuestionContent(session, str(i["id"]))
-
- def f_getQuestionContent(session, id):
- r = session.get("https://sdjrzk.xuanyun.tech/api/exam/paper/"+id+"/")
- print(id)
- data = json.loads(r.text)
- content = data["content"]
- content_object = json.dumps(data["content_object"], cls=JsonEncoder, ensure_ascii=False)
- cursor = db.cursor()
- sql="call insert_question_content(%s, %s, %s)"
- cursor.execute(sql, (id, content, content_object))
- db.commit()
- # print(r.text)
- if __name__ == '__main__':
- start()
|