基于云技术Android平台校园资讯抓取设计与实现

2022-12-27 版权声明 我要投稿

一、引言

目前, 师生获取校园资讯和互相交流主要是通过学校网站和微信、QQ等第三方交互软件来实现, 缺乏粘度。根据现实校园生活中的需求, 使用基于云计算技术里的Paas (平台即服务) 的相关服务在Android系统平台下开发该系统, 方便学校老师、学生进行交流, 浏览与查询和管理校园信息。使用Scrapy框架设计和实现一款轻量级的爬虫框架, 获取校内、校外信息例如课表、招聘、校园周边等信息。

具体实现以下几个功能: (1) 分析服务器端接口的字段, 并在Android客户端中进行解析, 实现客户端与云服务端之间的数据交互。 (2) 分析和研究百度云提供的API信息和Android SDK, 实现百度云服务平台的各种API的调用。 (3) 使用Scrapy框架, 解析网页的编码格式, 实现校内通知、课表, 校园文化信息与周边信息等资讯的抓取与解析。

二、数据采集

网络数据采集也就是通过爬虫是从互联网上自动采集获取数据。爬取互联网数据的方法主要是用URL通过下载器去下载, 然后分析和入库或者继续入列进行抓取, 不断的重复该项操作, 直到满足爬取结束条件。使用的框架是Scrapy, 其架构如图1Scrapy架构图所示。

要实现通过Scrapy架构完成对网站信息的爬取, 首先进入网站搜索相关关键字的信息, 一般网站是通过get请求带的参数是信息标题。然后用requests模块去请求网页, 返回网页html信息并用LXML解析出信息的URL并入库。最后分析网页的URL, 获取该网页的信息, 通过解析LXML和re正则表达式提取对应的网页链接信息, 展示在前端页面和入库。主要的代码如下所示:

三、数据解析

云端服务器的数据采用Mysql数据库存储, Android客户端通过使用http请求协议来向服务器即百度云引擎发送请求, 服务器端发起查询Mysql数据库, 然后向Android客户端返回json数据, Android客户端对json数据进行解析并显示, 处理过程如图2所示。

百度云应用引擎里提供云数据库, 并提供详细的API文档说明如何完成对Mysql数据库的管理操作。云计算技术实现平台即服务即PaaS, 是指将软件研发的平台作为一种服务, 以软件即服务即SaaS的模式提交给用户。系统将数据以Json格式进行封装及参数传递, 每个功能模块的数据操作都定义一个php文件上, 方便用户在Android客户端完成数据库增删改查等操作并获得云服务器返回的Json格式数据。服务端主要通过以下方法获取客户端提交的信息字段进行数据的操作:

$json=file_get_contents (‘php://input’) ;

$obj=json_decode ($json) ;

其中file_get_contents () 函数是用来将文件的内容读入到一个字符串中, 参数“php://input”可以读取没有处理过的POST数据。然后通过json_decode () 方法把接收到的json数据解码成一个数据对象, 根据对象标识来获取客户端传过来服务器的数据字段信息。

为适配中文正常显示, 在服务器端接收或者查询数据时, 首先要通过urlencode编码, 然后返回数据输出时要再执行一次urldecode解码。具体利用的函数与返回数据操作如以下代码所示:Echo mb_convert_encoding (urldecode (json_encode (array (“AssociationActivities”=>$message) ) ) , ”GB2312”, ”auto”) ;

通过爬虫从互联网上自动采集获取得的数据并不是都有价值, 通过文本挖掘可以帮助用户快速获得有价值的数据。文本挖掘是根据抓取数据或者数据库提供的数据进行文本分析, 基本流程为获取数据集、文本预处理、挖掘分析, 最后进行可视化显示。

四、Android端爬取课表设计

课程表信息的爬取不同于一般新闻和通告等信息的爬取, 要爬取课程表的信息要么登录到教务系统, 要么利用http协议模拟浏览器登录, 然后根据返回的信息抓取分析出相应的课表信息。Android客户端采取第二种方法实现, 首先要对浏览器登录的过程进行抓包, 分析浏览器尝试登录时向网页提交的数据。服务器根据登录时创建的会话session判断用户是否登录, 而浏览器端是通过cookies来保存对应用户的session id来判断用户是否登录教务系统, 所以通过抓包得出来的结果并进行分析便可利用java里http协议模拟登录教务系统, 获得课表信息, 处理原理和流程如图3、图4所示。

五、结语

系统基于Android开发技术结合云计算技术包括百度云引擎和百度云存储, 在Android项目中引入Python的Scrapy架构, 实现Android移动端对互联网信息的采集、分析和显示处理。通过APP中的“课程表”、“校内通知”等功能, 为学校师生提供准确的课程信息, 师生快捷访问校园各种资讯, 灵活准确地使用校园服务。

摘要:系统利用校内服务器及百度云应用引擎、网络爬虫技术对校园网站资讯进行数据的分析和管理, 让师生通过Android终端设备实现对校园各种资讯的查询和管理, 获取业界和校外的各种信息, 并整合各种与校园文化相关的应用, 旨在加强师生之间教学交流, 提高校园的信息化水平。

关键词:百度云应用引擎,云计算,文本挖掘,Scrapy

参考文献

[1] 汪兰英.基于Android平台的高校课程管理系统设计[J].信息与电脑 (理论版) , 2018 (18) .

[2] 徐玉莲, 朱昌洪.基于Android的大型Web交互网络平台设计与实现[J].现代电子技术, 2017 (10) .

[3] 郭丽蓉.基于Python的网络爬虫程序设计[J].电子技术与软件工程, 2017 (23) .

[4] 张良均.Python数据分析与挖掘实战[M].北京:机械工业出版社, 2016.

[5] 汪敏.基于Android系统的智能手机移动学习软件的设计与开发[D].辽宁师范大学, 2014-06-01.

上一篇:干挂石材墙面变色现象的成因及防治下一篇:浅谈粉喷桩在市政道路软基处理中的应用