国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于iOS的移動校園助手設(shè)計與實現(xiàn)

2019-06-06 04:21廖環(huán)宇何貞銘
軟件導(dǎo)刊 2019年3期

廖環(huán)宇 何貞銘

摘 要:為滿足信息查詢需求及促進移動校園發(fā)展,使用模擬登陸、Python爬蟲、驗證碼識別等技術(shù)設(shè)計基于iOS的移動校園助手。該應(yīng)用可實現(xiàn)新聞資訊實時瀏覽、教務(wù)管理無縫接入、校園地圖搜索導(dǎo)航及校園招聘信息查看等功能,為高校師生提供一個解決學(xué)習生活難題的新渠道,提高學(xué)校信息傳遞時效性和工作效率,同時可為其它高校實現(xiàn)校園數(shù)字化和移動化提供參考。

關(guān)鍵詞:校園助手;iOS應(yīng)用;移動校園;Python爬蟲;模擬登陸;驗證碼識別

DOI:10. 11907/rjdk. 182547

中圖分類號:TP319文獻標識碼:A文章編號:1672-7800(2019)003-0129-04

0 引言

目前大多數(shù)高校均建設(shè)有獨特的校園網(wǎng)站系統(tǒng)和信息管理系統(tǒng),如圖書管理系統(tǒng)、校園新聞網(wǎng)、科研管理信息系統(tǒng)、校園一卡通自助服務(wù)系統(tǒng)、學(xué)生就業(yè)信息平臺、校園電子郵件系統(tǒng)等,多數(shù)高校信息化建設(shè)已具備一定規(guī)模[1-2]。但隨著移動網(wǎng)絡(luò)的發(fā)展,傳統(tǒng)校園信息平臺存在的弊端逐漸顯現(xiàn)[3]。

(1)空間問題。傳統(tǒng)校園信息的獲取一般存在于PC端,但PC端一般固定于某場所,因此對空間有一定限制。

(2)信息交流問題。傳統(tǒng)校園信息獲取途徑單一、空間固定,導(dǎo)致信息傳達不及時,信息實用率低,甚至產(chǎn)生信息孤島。

隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,數(shù)字化校園越來越受到各高校的重視[4-6]。復(fù)旦大學(xué)于2011年8月率先發(fā)布“i復(fù)旦”校園移動信息應(yīng)用,集成了新聞、日歷、班車、圖書館、校園卡、黃頁等應(yīng)用模塊[7]。其它各大高校也陸續(xù)推出了自己的校園移動客戶端,如武漢理工大學(xué)的“掌上理工大”、清華大學(xué)的“AtTsinghua”、蘇州大學(xué)的“你好蘇大”等。在國外,校園應(yīng)用也發(fā)展良好,如加州大學(xué)圣迭戈分校的移動平臺提供課程安排、校車查詢及天氣查詢功能[8]。阿拉巴馬大學(xué)移動校園應(yīng)用中的運動門戶模塊不僅提供不同運動場賽事安排情況,還可即時更新比賽資訊[9]。總體而言,國外移動校園服務(wù)平臺在功能設(shè)計上重服務(wù)、輕管理,更貼近師生生活,但是在界面設(shè)計、功能設(shè)計等方面仍不夠完善。

目前各高校校園信息服務(wù)系統(tǒng)大多基于B/S模式或Android系統(tǒng)開發(fā)而成[10-12],隨著iPhone手機用戶數(shù)量的不斷增加,開發(fā)一款基于iOS系統(tǒng)的校園助手顯得十分必要。iOS系統(tǒng)具有系統(tǒng)穩(wěn)定、操作流暢、界面美觀、安全性高等特點[13-14],可為用戶帶來良好的使用體驗。基于上述問題和學(xué)校教學(xué)情況,本文設(shè)計開發(fā)了基于iOS平臺的高校校園助手,在傳統(tǒng)校園APP新聞瀏覽、成績查詢等基礎(chǔ)功能上,增加校園地圖和招聘信息功能,可緩解高校學(xué)生信息資料獲取途徑較少的問題,同時提高信息傳遞時效性和工作效率,促進校園移動互聯(lián)建設(shè)發(fā)展。

1 關(guān)鍵技術(shù)

1.1 模擬登錄

模擬登錄是利用程序模擬用戶登錄、訪問服務(wù)器的過程[15]。有些網(wǎng)站內(nèi)容需登錄后才可正常查看,如高校學(xué)生選課或考試成績查詢,需先輸入教務(wù)處賬號和密碼。為實現(xiàn)模擬登陸,首先需使用瀏覽器開發(fā)者工具對目標網(wǎng)站進行數(shù)據(jù)抓包,分析登錄網(wǎng)站的執(zhí)行過程,包括請求的URL地址及每一步發(fā)送或返回的參數(shù)情況;然后在服務(wù)端編寫代碼模擬整個登錄過程中全部操作。

模擬登錄步驟一般分為:①訪問登錄頁面;②解析返回的Header信息(如Cookie、Session id、Request URL等);③獲取用戶輸入的賬號和密碼;④通過POST請求將賬號、密碼、Header等信息發(fā)送至Request URL;⑤解析返回的結(jié)果,判斷是否登錄成功。

1.2 Python爬蟲

網(wǎng)絡(luò)爬蟲又名“網(wǎng)絡(luò)蜘蛛”,其工作原理是首先設(shè)定一些初始的URL地址,通過模擬瀏覽器訪問網(wǎng)站過程中的動作,獲取目標網(wǎng)站返回的數(shù)據(jù)信息,并利用解析工具進行解析獲得最終符合要求的數(shù)據(jù)。其主要包含配置模塊、URL管理模塊、網(wǎng)頁抓取模塊、網(wǎng)頁解析模塊及網(wǎng)頁存儲模塊等[16]。

Python是一門功能強大的動態(tài)編程語言,由于其語法簡潔、功能庫豐富、高擴展性及代碼開源等特點而受到廣大開發(fā)者的青睞。目前大多數(shù)網(wǎng)絡(luò)爬蟲都是基于Python語言開發(fā)而成[17-18]。本文使用基于2.7版本的Python作為網(wǎng)絡(luò)爬蟲開發(fā)語言,從學(xué)校各個新聞網(wǎng)上抓取數(shù)據(jù),為APP提供新聞、招聘信息數(shù)據(jù)來源。

1.3 驗證碼識別

驗證碼是為防止黑客惡意攻擊網(wǎng)站及進行人機區(qū)分而設(shè)計的一種驗證登錄用戶身份的技術(shù),目前主要有文字、圖片、語音和3D驗證碼4種類型[19-20]。其中,網(wǎng)站應(yīng)用最廣泛的為圖片驗證碼,通過將一些字符進行扭曲、拉伸、錯亂排版,并添加額外噪點或線條,增加圖片驗證復(fù)雜度,從而在一定程度上防止機器人登錄網(wǎng)站。

驗證碼識別主要通過圖像處理和模式識別技術(shù)實現(xiàn)對圖片驗證碼的處理。其中,圖像處理技術(shù)包括圖像灰度化、二值化、去噪、傾斜度校正、字符切割和歸一化等;模式識別技術(shù)主要包括提取字符特征、樣本訓(xùn)練及識別。

由于本應(yīng)用在模擬登陸教務(wù)處過程中會出現(xiàn)圖片驗證碼,為提供更好的用戶體驗,后臺實現(xiàn)了自動識別圖片驗證碼的功能,減少用戶輸入次數(shù)。

2 系統(tǒng)總體設(shè)計

2.1 需求分析

校園助手功能主要包括:新聞資訊、教務(wù)助手、校園地圖、招聘信息和個人中心5大模塊。

(1)新聞資訊。APP主要功能之一,提供最新校園資訊和通知公告等信息。用戶可瀏覽、收藏、評論和分享新聞。

(2)教務(wù)助手。教務(wù)系統(tǒng)是高校學(xué)生使用頻次最高的校園信息系統(tǒng)之一,在高校教務(wù)信息管理方面發(fā)揮著重要作用。該模塊主要包括成績查詢和課表查詢。

(3)校園地圖。因?qū)W校占地面積較大,師生人數(shù)眾多,且各個校區(qū)分布于不同地區(qū)。由于不熟悉校園環(huán)境,師生迷路的情況時有發(fā)生。針對該問題,校園助手提供各校區(qū)電子地圖,方便師生快速定位和導(dǎo)航。模塊主要包含用戶定位、POI關(guān)鍵字搜索、地圖導(dǎo)航、全景校園等功能。

(4)招聘信息。每年臨近畢業(yè)時期,各大高校就業(yè)指導(dǎo)中心和就業(yè)信息網(wǎng)均會發(fā)布相關(guān)專業(yè)招聘和宣講會信息。傳統(tǒng)宣傳方法通過在校內(nèi)粘貼海報或在各個班群發(fā)送相關(guān)信息,不僅費時費力,而且宣傳效果不佳。招聘信息模塊能夠在一定程度上解決該問題。后臺系統(tǒng)通過網(wǎng)絡(luò)爬蟲技術(shù),對學(xué)校就業(yè)信息網(wǎng)及海投網(wǎng)招聘信息進行抓取,并返回給前臺進行展示,為用戶提供全國各省、各大高校實時招聘信息。

(5)個人中心。該模塊主要包含用戶個人信息設(shè)置、我的收藏、意見反饋、字體大小和消除緩存等功能。

2.2 系統(tǒng)架構(gòu)

基于iOS的移動校園助手分為服務(wù)端和客戶端。服務(wù)端基于模擬登錄和驗證碼識別技術(shù),可實現(xiàn)與教務(wù)系統(tǒng)實時對接;通過設(shè)定Python爬蟲定時運行的間隔時間,使其自動從學(xué)校網(wǎng)站上抓取新聞通知,并保存在MySQL數(shù)據(jù)庫中,為客戶端提供數(shù)據(jù)來源。

客戶端采用AFNetworking和Realm等第三方庫進行網(wǎng)絡(luò)請求、數(shù)據(jù)庫讀寫操作。應(yīng)用接收用戶操作事件后,由視圖控制器調(diào)用相應(yīng)功能服務(wù),并向服務(wù)器接口請求數(shù)據(jù),成功返回后填充到視圖層,并保存至SQLite數(shù)據(jù)庫中。系統(tǒng)整體架構(gòu)如圖1所示。

2.3 數(shù)據(jù)庫設(shè)計

數(shù)據(jù)是組成一個系統(tǒng)的關(guān)鍵部分,數(shù)據(jù)庫設(shè)計的質(zhì)量對整個應(yīng)用性能和用戶體驗產(chǎn)生重要影響。下文分別描述系統(tǒng)3個主要數(shù)據(jù)表結(jié)構(gòu)。

(1)用戶信息表。主要包含用戶ID、用戶名、密碼、真實姓名、頭像、學(xué)號、生日、性別、院系、專業(yè)、班級等信息。

(2)課程表。與課程相關(guān)的數(shù)據(jù)包括課程ID、課程名、學(xué)年、學(xué)期、周次、星期、節(jié)次、學(xué)時、學(xué)分、教師、教室等。

(3)新聞信息表。與新聞相關(guān)的數(shù)據(jù)包括新聞ID、標題、內(nèi)容、關(guān)鍵詞、時間、作者、源網(wǎng)站名稱和URL等。

3 主要功能模塊實現(xiàn)

APP使用Objective-C語言在Mac OS 10.11系統(tǒng)下進行相關(guān)功能開發(fā)。軟件支持在iOS 7.0及以上設(shè)備運行。

3.1 新聞資訊模塊實現(xiàn)

該模塊主要提供學(xué)校新聞網(wǎng)中的新聞資訊,點擊新聞條目可跳轉(zhuǎn)至對應(yīng)信息詳情界面,并可對新聞進行收藏、分享和評論。模塊工作原理為:設(shè)置定時任務(wù)運行Python爬蟲,增量抓取校園網(wǎng)新聞數(shù)據(jù),并保存至服務(wù)器數(shù)據(jù)庫,通過調(diào)用后臺數(shù)據(jù)接口,向服務(wù)器請求新聞信息并返回至APP,最終將新聞?wù)故驹诮缑嫔稀?/p>

頂部輪播圖片新聞區(qū)域及底部各個欄目的新聞條目可分別看作橫向及縱向UITableView列表。其中,不同新聞列表圖片數(shù)量可能不同,需自定義不同的UITableViewCell進行展示。為避免主界面線程阻塞,應(yīng)使用異步方法加載圖片數(shù)據(jù)。新聞資訊模塊運行如圖2所示。

3.2 教務(wù)助手模塊實現(xiàn)

教務(wù)助手模塊主要包含成績查詢及課表查詢。進入成績查詢頁面前,需先判斷用戶是否為學(xué)號登錄,否則跳轉(zhuǎn)至登錄界面。將學(xué)號及密碼發(fā)送至服務(wù)器,由后臺系統(tǒng)對教務(wù)系統(tǒng)進行模擬登錄,成功后繼續(xù)請求用戶成績,使用UITableView控件將分數(shù)及績點信息顯示在界面上,如圖3所示。

課表查詢的數(shù)據(jù)獲取方法與成績查詢類似。通過讀取NSUserDefaults,獲取用戶專業(yè)班級,同時將用戶需查詢的學(xué)年、學(xué)期等信息發(fā)送至服務(wù)器。解析網(wǎng)頁信息后返回課程JSON數(shù)據(jù),通過嵌套使用UITableView控件進行展示,并保存至SQLite數(shù)據(jù)庫中。之后每次查詢可直接使用Realm讀取SQLite數(shù)據(jù)庫,無需向服務(wù)器重復(fù)發(fā)送網(wǎng)絡(luò)請求,一定程度上減輕了服務(wù)器壓力,節(jié)省了用戶流量。

3.3 校園地圖模塊實現(xiàn)

互聯(lián)網(wǎng)技術(shù)的成熟促進了地圖開發(fā)產(chǎn)業(yè)的蓬勃發(fā)展,市場涌現(xiàn)出大量各有所長的地圖API[21]。由于高德地圖具有接口豐富、定位精準、使用簡易、文檔齊全等特點,故本文選用其進行二次開發(fā)。

用戶進入該模塊后,點擊“定位”圖標按鈕可快速定位到用戶當前所在位置,點擊“校區(qū)切換”圖標可切換顯示不同校區(qū)的地圖,通過設(shè)置iOS地圖SDK中AMapPOIKeywordsSearchRequest類的keyword參數(shù),發(fā)起POI關(guān)鍵字搜索,查詢用戶感興趣的地點信息。另外,導(dǎo)航SDK中還提供步行、騎行、公交、駕車等多種出行路線規(guī)劃接口,對不同路線規(guī)劃類中的出發(fā)地和目的地等參數(shù)進行設(shè)置后,在回調(diào)函數(shù)中將路線顯示在地圖上,為用戶提供便捷的導(dǎo)航服務(wù)。

3.4 招聘信息模塊實現(xiàn)

用戶進入該模塊后,默認顯示學(xué)校招聘及宣講會信息。APP將請求參數(shù)發(fā)送給后臺服務(wù)器,服務(wù)器通過模擬瀏覽器訪問的方式獲取學(xué)校就業(yè)信息網(wǎng)、海投網(wǎng)上對應(yīng)省份和學(xué)校招聘宣講信息并返回至APP。用戶點擊“省份”和“學(xué)校”按鈕后,底部彈出UIActionSheet視圖,以便切換選擇其它地區(qū)高校的招聘信息。

4 結(jié)語

隨著校園信息化建設(shè)的推進,移動校園APP逐漸在各大高校得到廣泛推廣和應(yīng)用。本系統(tǒng)通過整合學(xué)校新聞網(wǎng)、就業(yè)信息網(wǎng)和海投網(wǎng)等網(wǎng)站信息,基于高德地圖SDK及模擬登錄、圖片識別、Python爬蟲技術(shù),實現(xiàn)了新聞資訊、教務(wù)助手、校園地圖、招聘信息等功能,為師生打造了一個移動校園iOS應(yīng)用平臺。

目前該應(yīng)用已成功在蘋果應(yīng)用商店上線,并在校內(nèi)進行了一段時間的試運行。系統(tǒng)界面友好、操作簡便、性能穩(wěn)定,取得了良好效果,不僅為師生提供了獲取校園資訊的新途徑,同時促進了學(xué)校教學(xué)、科研及綜合教務(wù)服務(wù)水平的提升。隨著應(yīng)用功能不斷豐富及系統(tǒng)性能逐步提升,該系統(tǒng)將為學(xué)校師生提供更加便捷的校園生活服務(wù)。

參考文獻:

[1] 趙小剛. 淺談高校信息化建設(shè)現(xiàn)狀與發(fā)展趨勢[J]. 江蘇科技信息,2013(20):28-30.

[2] 王力斌,張偉,頓文濤. 高校信息化建設(shè)演進分析[J].? 河南工業(yè)大學(xué)學(xué)報:社會科學(xué)版,2016(02)

[3] 王鳳仙. 上海大學(xué)生智能手機的使用行為研宄[D]. 上海:上海交通大學(xué),2013.

[4] 傅宇凡,冀婧巖,高凱濤,等. 117所高校綜合管理信息化對比分析[J]. 中國教育網(wǎng)絡(luò),2017(Z1):23-28.

[5] 崔為花. 基于移動互聯(lián)網(wǎng)技術(shù)的“移動智慧校園”設(shè)計與實現(xiàn)[J]. 軟件工程師,2015,18(5):27-29.

[6] 尚進. 淺談西安電子科技大學(xué)移動校園建設(shè)[J]. 陜西教育:高教版,2014(Z1):115-116.

[7] 任婷婷. 基于Android系統(tǒng)的校園助手應(yīng)用的設(shè)計與實現(xiàn)[D]. 北京:北京交通大學(xué),2014.

[8] ALDRICH A. Universities and libraries move to the mobile Web[EB/OL]. http://www.educause.edu/ero/article/universities-and-libraries- move- mobile-web.

[9] GUIRGUIS S, HASSAN M A. A smart framework for web content and resources adaptation in mobile devices[C]. IEEE Advanced Communication Technology (ICACT),2010:1-8.

[10] 曹雙雙. 基于Android手機的校園移動平臺設(shè)計[J]. 軟件導(dǎo)刊,2015,14(8):179-181.

[11] 王欣,景波. 基于云技術(shù)支持的智慧校園支撐平臺的總體設(shè)計[J]. 現(xiàn)代電子技術(shù),2016,39(6):18-20.

[12] 江龍. 基于Android系統(tǒng)的校園助手軟件的設(shè)計與實現(xiàn)[D]. 淄博:山東理工大學(xué),2016.

[13] 鄒光臨. Android與iOS對比分析及競爭優(yōu)缺點[J]. 科技與創(chuàng)新,2017(10):65.

[14] 吳寅鶴. iOS平臺應(yīng)用程序的安全性研究[D]. 廣州:廣東工業(yè)大學(xué),2014.

[15] 孫青云,王俊峰,趙宗渠,等. 一種基于模擬登錄的微博數(shù)據(jù)采集方案[J]. 計算機技術(shù)與發(fā)展,2014,24(3):6-10.

[16] 王敏. 分布式網(wǎng)絡(luò)爬蟲的研究與實現(xiàn)[D]. 南京:東南大學(xué),2017.

[17] 馮清. 基于Python的基因表達數(shù)據(jù)網(wǎng)絡(luò)爬蟲研究與設(shè)計[D]. 太原:山西醫(yī)科大學(xué),2017.

[18] 陳琳,任芳. 基于Python的新浪微博數(shù)據(jù)爬蟲程序設(shè)計[J]. 信息系統(tǒng)工程,2016(9):97-99.

[19] 呂霽. 淺談驗證碼的識別[J]. 河北能源職業(yè)技術(shù)學(xué)院學(xué)報,2015,15(1):72-74.

[20] 朱瑩玲. 粘連字符驗證碼的識別研究[D]. 南京:南京理工大學(xué),2017.

[21] 向玉云,高爽,陳云紅,等. 百度、高德及Google地圖API比較研究[J]. 軟件導(dǎo)刊,2017,16(9):19-21,25.

(責任編輯:江 艷)

青铜峡市| 乐山市| 韶关市| 芒康县| 天等县| 依兰县| 南木林县| 申扎县| 牙克石市| 武鸣县| 五大连池市| 博野县| 龙井市| 揭西县| 合作市| 成武县| 永靖县| 新乐市| 南靖县| 马鞍山市| 响水县| 连江县| 文水县| 元阳县| 肥西县| 石楼县| 同德县| 三亚市| 溧阳市| 西青区| 自治县| 翁牛特旗| 凌云县| 北京市| 商南县| 房山区| 金华市| 大邑县| 兴宁市| 南丰县| 泸溪县|