You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
此项目的爬虫从学校的排课网站爬取课程列表的表格内容,爬取的数据用于 SHU 排课助手(以下简称排课助手)。由于排课助手的架构原因,爬虫脏数据可能会对排课助手的数据造成不可逆的副作用,例如被删除的课程会从用户的待选列表中移除,上课时间修改后如果与其他已选课程时间冲突则会被取消选择等。因此,有必要保留数据校验和人工复审机制,确保数据结构的正确性,减少脏数据对排课助手用户的影响。
问题背景
term_diff
函数将上次结果和当前结果进行比较,得到增加、修改、删除的数组。此前存在、现在被禁用的数据校验机制是对可能产生副作用的主要字段修改,和全部增加与删除变动标记为需要人工复审,创建 Pull Request 进行手工合并。这个方案存在需要人工复审的频率过高的问题,使数据更新效率受限,但在长期使用中,也确实发现了一些由于学校网站改版导致的脏数据问题,成功避免了脏数据进入排课助手。因此,我们需要设计更合理的数据校验和人工复审机制,防止脏数据污染,同时节省人工复审的频率。需求
实现思路
对比结果:
is_major_update
函数中,可将term_diff
的结果用is_major_change
函数进行筛选,得到需要进行校验的数据变动,对增加、修改、删除的变动进行计数。根据各类型变动的数目进行处理:
通过以上机制,我们可以在保证数据质量的前提下,减少人工复审的频率,提高更新效率。
进一步改进
The text was updated successfully, but these errors were encountered: