最近英语四级成绩出了,自己虽然分数不高但也是过了,虽然自己过了,但是自己比较好奇班里同学们的通过情况。为了满足自己的好奇心,自己利用毛概课写了python自动查询脚本

  1. 首先分析网页,查询界面肯定是ajax,所以直接抓ajax的包,进行分析
    49753-njsl4zqh3h9.png
  2. 发现是get请求,响应数据是json数据
    47465-o7lhvn4gnbl.png
  3. 开始请求,因为要爬取班级所有同学的,所以从excel中读取每个同学的信息,然后进行解析,解析出成绩
  4. 对成绩进行保存,将成绩保存在excel中,这样看起来更直观,以下是源码:

    import requests
    import json
    import xlrd
    import xlwt
    
    xm = ''
    no = ''
    
    def write_excel_xls_append(path):
     workbook = xlwt.Workbook()  # 新建一个工作簿
     sheet = workbook.add_sheet(path)  # 在工作簿中新建一个表格
     index = len(ls)
     for i in range(0, index):
         for j in range(0, 2):
             sheet.write(i, j, ls[i][j])  # 像表格中写入数据(对应的行和列)
     workbook.save(path)  # 保存工作簿
     print(ls)
    
    header = {
     'Accept': '*/*',
     'Accept-Encoding': 'gzip, deflate',
     'Accept-Language': 'zh-CN,zh;q=0.9',
     'Connection': 'keep-alive',
     'Host': 'cachecloud.neea.cn',
     'Origin': 'http://cet.neea.cn',
     'Referer': 'http://cet.neea.cn/',
     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
    }
    
    inform_path = ''
    workbook = xlrd.open_workbook(inform_path)  # 打开工作簿
    sheets = workbook.sheet_names()  # 获取工作簿中的所有表格
    worksheet = workbook.sheet_by_name(sheets[0])  # 获取工作簿中所有表格中的的第一个表格
    _str = ''
    ls = []
    
    # 读取工作簿的信息并发送请求
    for i in range(0, worksheet.nrows):
     # print(worksheet.row(i))
     xm = str(worksheet.cell_value(i, 0))
     no = str(worksheet.cell_value(i, 1))
     # print(xm)
     url = "http://cachecloud.neea.cn/api/latest/results/cet?e=CET_202112_DANGCI&km=1" + "&xm={}&no={}&v=".format(xm, no)
     data = requests.get(url=url, headers=header).json()
     try:
         if int(data['score']) >= 425:
             st = '通过'
         else:
             st = '未通过'
         ls.append([data['xm'], data['score'], st])
     except:
         # _str = _str + xm + ' ' + '无成绩' + '\n'
         ls.append([xm, '无成绩', '无成绩'])
    
    path = ''
    # 持久化存储
    write_excel_xls_append(path)
    # print(ls)
  5. 写在最后:通过抓包分析,还可以实现自动成绩单打印以及其他功能,只不过自己对那不是很好奇了,就没有再写
最后修改:2022 年 04 月 24 日
如果觉得我的文章对你有用,请随意赞赏