版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android解析网页课表的算法设计与实现
申圣兵+姚方元Summary:该文通过对常见校园APP中提取网页课表的技术进行了分析,介绍了其核心的算法及具体实现,最后提出了进一步完善的方法。Key:校园APP;网页课表;网页解析:TP311:A:1009-3044(2016)12-0215-02由于智能手机的迅速普及,校园类APP异常火爆,课程格子、超级课程表等等校园应用APP受到了广大学生们的喜爱,这些校园类应用APP以学生们经常使用的课表作为切入点,是它们成功的一项重要的因素,那么它们是如何将课表移植到手机上的呢?高校的教务系统,主要是正方、青果、强智等几种。如正方官网介绍成功案例有1000多家高校,它们的课表基本以网页形式展示,所以,提取网页课表成为这类校园应用APP比较核心的算法。1算法分析我们以正方教务系统提供的课表为例来分析算法设计,下面是正方系统提供的课表图。1.1课表分析课表以一个18行9列的表格显示,第一行显示星期,第二行显示早晨,第三行开始到倒数第二行之间为课程显示信息,中间又有两行分别用来分隔上午和下午、下午和晚上,最后一行显示课表的备注信息。课表第1列显示早晨、上、下午和晚上,第2列显示节次,第3列到最后显示相关课程信息。1.2算法设计思路课表的信息是显示在一个以表格的第3行第3列为左上角,倒数第二行最后一列为右下角这样的一个矩形区域的,由于我校一天最多只有10节课,一周7天,所以我们以一个10行7列的二维数组对课程表信息进行扫描,以便提取课程开始节次、结束节次及星期等关键信息,如果其他学校安排的一天课程节次数不同,就将数组稍作调整。由于网页表格显示具有不同于常规表格的特点,这给我们设计算法带来了难处。比如一行中某一列如果有课程信息:计算机应用基础【必修】2节/周[1-2]节(01-06,08-18)【给排水高1501】【教二栋208】,由于我们的课程安排一般是一次2节或以上,所以标记会有rowspan属性,它的值就是安排的连续节次,这样它占用了下面行的列数,下面相应行的列数即标记数就会减少。如果正常的列数为7列,那么到下面的行数就可能出现4列或5列甚至更少的情况,这是网页表格常见的特征。2算法实现2.1课表实体类的实现我们设计一个实体类Course来存储课程信息,它的设计如下:2.2课表解析关键算法的实现课表解析我们是通过jsoup来完成的,jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。首先我们移除一些无用的数据:我们需要移除第1、2、7、12、15、16、17、18行及相应行第1列数据,如下图所示:然后,我们通过循环遍历行、列来得到课程信息,并将它存储到Course类的一个集合里面。如下图所示:这其中,用到了一个获取当前课程信息为周几的一个函数fillMap(column,map,i),它的作用就是用来解决上面所提到的网页表格特点的,它的基本思路是这样的:首先将一个10行7列的数组进行清零,然后就对网页表格进行扫描,将当前行从第1列直到最后一列逐列扫描,扫描过的列就将值置1,如果列有rowspan属性的,就将相应的值置1,周几即为当前列号。最后,我们看看实现的提取课表的效果图:3结束语上述算法能适用绝大部分学校课表的情况,能够满足基本要求;但也存在一些不足之处,比如:课表的单双周问题,课表如果同时有1节、2节甚至多节的情况等等,需要进一步进行完善。Reference:[1]陈哲.垂直搜索中网页抓取技术的研究[J].科技信息,2009(22).[2]陈忠菊.正则表达式的研究和在网页抓取中的应用[J].电脑编程技巧与维护,2014(23).[3]刘艳平.Python模拟登录网站并抓取网页的方法[J].微型电脑应用,2015(2).电脑知识与技术2016年12期电脑知识与技术的其它文章C语言中scanf()函数对程序健壮性不良影响的解决办法面向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精酿啤酒厂合作协议书范文
- 1.3数据采集与编码(二)浙教版(2019)高中信息技术必修一课后习题(解析版)
- 上海与三明市合作协议书范文
- 初中几何辅助线大全(很详细哦)
- C语言程序设计实验指导书【范本模板】
- 2021-2022学年-有答案-陕西省某校八年级(上)期中政治试卷
- 语言翻山越岭:孩子的表达之路-如何养成孩子出色的表达能力
- 迎新生的广播稿(24篇)
- 防火防灾的倡议书范文(30篇)
- 中学语文教学工作总结范文(35篇)
- 《食物在身体里的旅行》
- 狂犬病暴露预防处置工作规范(2023年版)课件
- 银行信息科技风险披露制度
- 绞吸式挖泥船水下疏挖河渠施工工法
- 新产品开发流程图
- 供热公司设备管理制度
- 反腐倡廉廉洁行医
- 国家公务员考试准考证模板
- 断绝亲子关系证明书范本
- 液氨理化性质及危险特性表
- FREE高考英语核心词汇1783
评论
0/150
提交评论