因为老婆有时要使用i志愿的系统导出活动的考勤情况,活动数量多的话,就要逐个点击打开复制粘贴,比较耗时间,小弟试过手动复制粘贴半年的活动都用了半天的时间,所以决定写个程序,可以根据活动编号,导出所有的考勤人员。
开发环境:python3+Flask
首先,登录i志愿,打开 活动查询 ![在这里插入图片描述](https://img-blog.csdnimg.cn/efab8151fdb144c4aeb32ab36d73e3dc.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZC05a625YGla2Vu,size_20,color_FFFFFF,t_70,g_se,x_16) 因为点击其他link 地址都没有变化,所以应该使用iframe,可以使用右键->审查元素 查看地址 ![在这里插入图片描述](https://img-blog.csdnimg.cn/eb0b7d8917494565a03c16843dc2c8de.png) 明显src 的值就是地址,右键->open new tab,打开是这样: ![在这里插入图片描述](https://img-blog.csdnimg.cn/9e188e0a132d479f9477bc748c849998.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZC05a625YGla2Vu,size_20,color_FFFFFF,t_70,g_se,x_16) 将列表拉到最后,会看到操作栏目 ![在这里插入图片描述](https://img-blog.csdnimg.cn/66269d4b6d2642d092fe21fd637ea357.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZC05a625YGla2Vu,size_17,color_FFFFFF,t_70,g_se,x_16) 此时点击 考勤 是无法弹出,因为不在iframe里面,所以JS 无法生效的,这个问题不大 对着 考勤 右键->审查元素,可以看出这段代码:
<a href="javascript:;" onclick="attend('XXXXX')">考勤</a>
XXXX 是活动编号,当点击 考勤 的时候会触发attend() 的方法
之后再查看页面源代码F12,搜索attend(,会查找到这个方法
/*考勤*/
function attend(tabid){
parent.f_addTab('mission_attend'+tabid, '志愿者考勤', path+'/mission/manage/listInspection?missionId='+tabid+'&selectType=0');
}
到这里,其实就可以拼接考勤的接口,tabid 是活动编号,拼接后的地址是: https://www.gdzyz.cn/mission/manage/listInspection?missionId=xxxxxx
![在这里插入图片描述](https://img-blog.csdnimg.cn/88d18d350f1349cabf67478ba216a882.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZC05a625YGla2Vu,size_20,color_FFFFFF,t_70,g_se,x_16) 根据活动编号,打开地址,右键->审查元素->Network,可以见到这个地址,这个地址就是
https://www.gdzyz.cn/api/mission/manage/getInspectionList.do?missionId=xxxxxx&type=&userName=&mobile=&idcardCode=&isAdditionalRecording=&inspection=&additionalRecordingDateInput=2021-09-25&pageIndex=1&pageSize=10
返回是一段json,打开这段Json,就会看到其实这是考勤人员的数据
有了这个接口,剩下的就好做了,我只需要提交 活动编号,还有登录后header 的cookie就可以了 界面如下 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d6ca05b2d9204463b32dd114dfd65d64.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZC05a625YGla2Vu,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/f2c6481fa4dd435da7e191565f20f57f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5ZC05a625YGla2Vu,size_20,color_FFFFFF,t_70,g_se,x_16) 单次可以提交多个活动编号,就可以返回全部的考勤人员! 这是初版,以后有需要会继续改进!
|