梁小鷗+楊詠
摘要:正則表達(dá)式在許多領(lǐng)域有廣泛的應(yīng)用,而用于教材信息的收集中的情況較少。該文針對教材管理過程中的教材信息收集、教材征訂環(huán)節(jié)開發(fā)出教材信息收集系統(tǒng),其中可以利用正則表達(dá)式抓取購書網(wǎng)站上的教材信息,從而確保數(shù)據(jù)的有效性,提高工作效率。
關(guān)鍵詞:正則表達(dá)式;教材;信息收集
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)16-0156-02
1 概述
近年來,隨著高校招生規(guī)模的不斷擴(kuò)大,教學(xué)改革的不斷深入,教學(xué)管理系統(tǒng)建設(shè)成為各高校信息化建設(shè)的核心。教材管理是教務(wù)管理中的一個重要環(huán)節(jié),教材征訂、教材統(tǒng)計(jì)等成為了艱巨而繁瑣的工作,教材管理的系統(tǒng)化是教學(xué)管理人員的迫切需求。目前市面上很多的教學(xué)管理軟件都有涉及教材的管理,針對教材統(tǒng)計(jì)都有相應(yīng)的功能模塊,但普遍存在一個技術(shù)瓶頸——教材信息庫無法滿足實(shí)時更新的需求。
當(dāng)教材管理系統(tǒng)中的教材數(shù)據(jù)庫無法提供教師所需征訂的教材信息時,則需教師手動輸入教材基本數(shù)據(jù)。然而教材基本信息內(nèi)容較多,人工錄入教材信息工作效率較低,系統(tǒng)難以確保準(zhǔn)確性。本文就現(xiàn)有的教材管理系統(tǒng)中的瓶頸問題——教材信息采集進(jìn)行研究,開發(fā)出了教材信息收集系統(tǒng),找到解決教材基本信息規(guī)范采集的方法,同時精簡教師錄入征訂教材的操作步驟。
2 教材信息采集系統(tǒng)設(shè)計(jì)思路
本系統(tǒng)通過教學(xué)任務(wù)關(guān)聯(lián)教材征訂,在教材征訂環(huán)節(jié),除了擁有本地查詢教材信息,手動添加教材信息的功能外,還借助成熟的購書網(wǎng)站(如當(dāng)當(dāng)網(wǎng))實(shí)時更新的書籍信息庫進(jìn)行教材的查詢、選用。任課教師在購書網(wǎng)站查找到所需教材,進(jìn)入該教材的詳細(xì)介紹頁面,并將此頁面的URL在系統(tǒng)中進(jìn)行提交,系統(tǒng)獲取到指定網(wǎng)頁的所有信息,結(jié)合正則表達(dá)式提取有用的教材數(shù)據(jù):教材名稱、作者、出版社、ISBN等,并存入教材數(shù)據(jù)庫,從而確保了教師錄入的數(shù)據(jù)有效性、完整性和準(zhǔn)確性,提高了錄入教材信息的效率。
3 相關(guān)技術(shù)
什么是正則表達(dá)式?正則表達(dá)式(Regular Expression)是定義一組字符串的一系列字符和符號,從而快速方便地實(shí)現(xiàn)字符串的模式匹配,以及對輸入域中的值進(jìn)行數(shù)據(jù)驗(yàn)證。
由于PHP擁有強(qiáng)大的功能,支持多種數(shù)據(jù)庫,因此筆者選用PHP及其內(nèi)置函數(shù)進(jìn)行編程,實(shí)現(xiàn)教材管理中的教材信息收集功能。系統(tǒng)設(shè)計(jì)通過URL抓取網(wǎng)頁內(nèi)容,作者經(jīng)過對PHP幾種常用的抓取網(wǎng)頁內(nèi)容的方法(Curl、fopen、file_get_contents)進(jìn)行對比,最終選用性能較高的Curl方法來訪問、抓取網(wǎng)頁。Curl是一個利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具,支持多種協(xié)議,如HTTP、FTP、TELNET等。系統(tǒng)建立CURL請求的基本步驟:
$url=@$_POST['url'];//獲取提交的URL。
$ch = curl_init(); //初始化curl_init()。
curl_setopt ($ch, CURLOPT_URL, $url); //PHP取回的URL地址作為字符串。
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); //如果獲取URL成功只將結(jié)果返回$ch,不自動輸出任何內(nèi)容,如果失敗返回FALSE。
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10); //設(shè)置連接等待時間,當(dāng)前等待10秒。
$content = curl_exec($ch);//執(zhí)行并獲取結(jié)果。
獲取URL指定網(wǎng)頁的內(nèi)容后,作者利用正則表達(dá)式使用一系列的特殊字符構(gòu)建匹配模式,然后把匹配模式與網(wǎng)頁內(nèi)容進(jìn)行比較,過濾得出教材的基本信息。通過對購書網(wǎng)站中書籍產(chǎn)品頁面源代碼的查看,得知頁面的meta標(biāo)簽中都有包含所介紹書籍的名稱、ISBN號、出版社的信息,使用變量$metaskey存放書籍基本信息的meta標(biāo)簽內(nèi)容,利用explode切開meta標(biāo)簽中“,”左右的字符串,trim去掉字符序列左邊和右邊的空格,通過array_map返回用戶自定義函數(shù)作用后的數(shù)組,再用array_filter回調(diào)函數(shù)過濾數(shù)組中的元素。
將meta中的關(guān)鍵字進(jìn)行截?。?/p>
array_filter(array_map('trim',explode(',',$metaskey)));
然而meta中的信息并不完整,個別字段如作者姓名和出版時間并不包含在其中,而是存在于網(wǎng)頁的正文。面對網(wǎng)頁正文中上千行代碼,作者使用正則表達(dá)式通過設(shè)置關(guān)鍵字進(jìn)行正則匹配,能夠快速提取出相關(guān)數(shù)據(jù)。以出版時間為例,在網(wǎng)頁中“出版時間”所在的代碼段為:“出版時間:2015-4-1”,因此正則表達(dá)式則可定為:(?<=出版時間:).*?(?=<),表示匹配在第一次出現(xiàn)“出版時間:”字樣后直到出現(xiàn)第一個“<”符號中間的內(nèi)容(不包含“出版時間:”和“<”)。
4前期數(shù)據(jù)準(zhǔn)備工作
教材信息收集主要使用三個數(shù)據(jù)表:教材信息表、教學(xué)任務(wù)表和教材征訂表。教材信息表保存教材的基本信息:教材名稱、作者、出版社、ISBN等;教學(xué)任務(wù)表中指定每個學(xué)期各專業(yè)班級所開設(shè)的課程信息、任課教師等;教材征訂表則主要存放每條教學(xué)任務(wù)中對應(yīng)教材的基本信息。
5教材信息采集系統(tǒng)的實(shí)施
任課教師登錄進(jìn)入系統(tǒng),查看到自己的教學(xué)任務(wù)信息,通過對教學(xué)任務(wù)課程的點(diǎn)擊進(jìn)入到教材征訂界面,對所授課程的教材進(jìn)行征訂,并將結(jié)果顯示在網(wǎng)頁中供任課教師確認(rèn)或修改。教材管理人員即可在后臺導(dǎo)出所有教材征訂的精準(zhǔn)信息,以便后續(xù)的統(tǒng)計(jì)、匯總工作。
教材征訂途徑有三種:一、使用系統(tǒng)教材庫中已經(jīng)存在的教材信息,通過本地查詢找出所需教材進(jìn)行選用征訂。二、當(dāng)教材庫中沒有該教材信息,則可以通過表單填寫教材信息,系統(tǒng)將填入的數(shù)據(jù)進(jìn)行規(guī)范校驗(yàn),同時保存相關(guān)數(shù)據(jù)至教材信息表,教材征訂表。三、借助成熟的購書網(wǎng)站(如當(dāng)當(dāng)網(wǎng))進(jìn)行教材的選用,任課教師查找到該教材的詳細(xì)介紹頁面,并將此頁面的URL作為教材信息在系統(tǒng)中填報,系統(tǒng)自動將提取出的教材基本信息完成教材征訂,并將最新數(shù)據(jù)存入數(shù)據(jù)庫。通過以上三種途徑確保教材征訂時的數(shù)據(jù)有效性、完整性和準(zhǔn)確性。
6總結(jié)
此系統(tǒng)是基于廣東工程職業(yè)技術(shù)學(xué)院校級課題《高職院校教材管理模式信息化探索與研究》(編號:KY2014014)的研究方向,采用PHP語言編寫,結(jié)合MySQL數(shù)據(jù)庫開發(fā)的教材信息采集系統(tǒng)。該系統(tǒng)成本低、兼容性強(qiáng),并結(jié)合我校實(shí)際情況,任課教師通過網(wǎng)頁查看教學(xué)任務(wù)的同時提交教材的征訂,操作簡單容易掌握。經(jīng)實(shí)際應(yīng)用表明,它能有效地將教學(xué)管理者從教材征訂環(huán)節(jié)的工作中解救出來,減輕他們的工作負(fù)擔(dān),提高其工作效率,取得了課題研究預(yù)期的效果。
參考文獻(xiàn):
[1] 胡軍偉,秦奕青,張偉.正則表達(dá)式在Web信息抽取中的應(yīng)用[J].北京信息科技大學(xué)學(xué)報:自然科學(xué)版,2011(6).
[2] 張靜,張妍.正則表達(dá)式及其在信息抽取中的應(yīng)用[J].電腦知識與技術(shù),2009(15).
[3] 黃進(jìn).校本教材在高職院校中的作用探討[J].廣東教育:職教版,2014(8).