亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        CALIS館際互借系統(tǒng)文獻(xiàn)預(yù)處理程序設(shè)計(jì)

        2015-05-12 07:50:44朱玉強(qiáng)山東師范大學(xué)圖書館山東濟(jì)南250014
        圖書館學(xué)刊 2015年1期
        關(guān)鍵詞:館際互借本館跨域

        朱玉強(qiáng)(山東師范大學(xué)圖書館,山東濟(jì)南250014)

        ?

        CALIS館際互借系統(tǒng)文獻(xiàn)預(yù)處理程序設(shè)計(jì)

        朱玉強(qiáng)
        (山東師范大學(xué)圖書館,山東濟(jì)南250014)

        [摘要]針對(duì)館際互借員需要對(duì)用戶向CALIS系統(tǒng)提交的文獻(xiàn)請(qǐng)求進(jìn)行大量重復(fù)性預(yù)處理操作的現(xiàn)狀,設(shè)計(jì)并實(shí)現(xiàn)基于網(wǎng)頁文檔對(duì)象的輔助程序,全自動(dòng)檢索、獲取并向用戶推送免費(fèi)資源,執(zhí)行“本館運(yùn)送”操作,以提升館際互借員操作體驗(yàn),有效節(jié)省圖書館經(jīng)費(fèi)。

        [關(guān)鍵詞]CALIS館際互借網(wǎng)頁文檔對(duì)象跨域訪問

        [分類號(hào)]TP393

        1 引言

        CALIS管理中心于2004年6月21日啟動(dòng)“館際互借/文獻(xiàn)傳遞服務(wù)網(wǎng)”,開展返還式“館際互借”及非返還式“文獻(xiàn)傳遞”服務(wù)[1]。以山東師范大學(xué)圖書館為例,除CALIS提供館際互借補(bǔ)貼外,該館還通過圖書館經(jīng)費(fèi)向讀者追加補(bǔ)貼,用戶幾乎全免費(fèi)獲取非返還式電子全文。讀者通過CALIS免費(fèi)獲取文獻(xiàn)后,往往不愿再去檢索本地館藏,有需求時(shí)直接向CALIS系統(tǒng)提交。為節(jié)省本館經(jīng)費(fèi),館際互借員有必要對(duì)讀者申請(qǐng)預(yù)先處理,對(duì)本地有館藏或可通過免費(fèi)途徑得到的文獻(xiàn),直接執(zhí)行“本館運(yùn)送”操作。筆者通過CALIS館際互借官方QQ群調(diào)研,上述現(xiàn)象普通存在。故此通過操作網(wǎng)頁文檔對(duì)象等途徑編制程序,全自動(dòng)預(yù)處理館際互借請(qǐng)求,可有效節(jié)省圖書館經(jīng)費(fèi),提升館際互借員操作體驗(yàn)。

        2需求及技術(shù)思路

        CALIS館際互借系統(tǒng)依托網(wǎng)頁實(shí)現(xiàn)功能,故程序圍繞對(duì)網(wǎng)頁元素的自動(dòng)操作展開。溫曉明[2]使用Python語言,通過向圖書館OPAC服務(wù)器提交POST請(qǐng)求的方式模擬人工操作網(wǎng)頁,檢測(cè)圖書館電子資源可用性;胡衛(wèi)等[3]編制軟件,向HTTP服務(wù)器發(fā)送POST請(qǐng)求,取回服務(wù)器響應(yīng)后的網(wǎng)頁源文件,模擬人工搜索、下載地震相關(guān)資料;張金等[4]為解決網(wǎng)頁表單數(shù)據(jù)重復(fù)填寫等問題,通過分析Web頁面結(jié)構(gòu),提出一種Web元素智能識(shí)別方法,實(shí)現(xiàn)自動(dòng)化操作;陳江勇等[5]使用測(cè)試工具Selenium提供的API對(duì)Web界面元素所持有事件進(jìn)行封裝,達(dá)到自動(dòng)操作網(wǎng)頁元素、對(duì)Web應(yīng)用程序進(jìn)行自動(dòng)測(cè)試的目的;任昌[6]介紹了綜合運(yùn)用DOM樹路徑、DOM壓縮樹路徑以及參考點(diǎn)等方式進(jìn)行網(wǎng)頁對(duì)象定位;張宗科[7]對(duì)于不能使用網(wǎng)絡(luò)蜘蛛下載的網(wǎng)頁,通過模擬按鍵等方式模擬人工打開、保存、關(guān)閉網(wǎng)頁系列操作,減輕人工重復(fù)勞動(dòng);楊延航等[8]介紹了使用ASP.NET實(shí)現(xiàn)向網(wǎng)頁上傳文件的方法。上述文獻(xiàn)或囿于應(yīng)用環(huán)境,均未涉及異域數(shù)據(jù)集成環(huán)境中(下簡(jiǎn)稱“跨域”)對(duì)網(wǎng)頁元素的操作。陳臘梅等[9]提出了使用XMLHTTP代理外加JSON技術(shù)解決AJAX跨域訪問和展現(xiàn)數(shù)據(jù)的問題,解決方案相對(duì)復(fù)雜。CALIS館際互借系統(tǒng)網(wǎng)頁雖未采用復(fù)雜的框架及跨域元素,但難免被嵌套使用。筆者除利用微軟提供的針對(duì)IE瀏覽器的二次開發(fā)接口操作網(wǎng)頁元素外,還利用Win32 API函數(shù)實(shí)現(xiàn)了跨域網(wǎng)頁元素的枚舉和操作,總體工作流程如圖1所示。

        圖1 總體工作流程

        3關(guān)鍵方法與技術(shù)

        3.1取網(wǎng)頁文檔對(duì)象、定位目標(biāo)網(wǎng)頁元素

        程序工作于Internet Explorer或用戶指定的IE內(nèi)核瀏覽器。取瀏覽器句柄,篩選類名為“Internet Explorer_Server”(下簡(jiǎn)稱“IES”)子句柄;操作IES,取網(wǎng)頁文檔對(duì)象;操作網(wǎng)頁文檔對(duì)象,實(shí)現(xiàn)模擬真人點(diǎn)擊或填表等。算法描述如下:

        輸入:Internet Explorer或IE內(nèi)核瀏覽器。

        輸出:可精確定位的目標(biāo)網(wǎng)頁元素。

        Step1:運(yùn)行瀏覽器,使用FindWindow或EnumWindows取頂級(jí)窗口句柄hwnd;使用FindWindowEx或EnumChild?Windows取hwnd中ClassName為“Internet Explorer_Server”的子句柄hwnd_IES。

        Step2:取hwnd_IES網(wǎng)頁文檔對(duì)象。易語言中核心代碼為:

        ①M(fèi)essage=RegisterWindowMessageA(“WM_HT?ML_GETOBJECT”);

        ②SendMessageTimeout(hwnd_IES,Message,0,0,2,1000,ResourceNO);

        ③ObjectFromLresult(ResourceNO,{ 32,197,111,98,30,164,207,17,167,49,0,160,201,8,38,55 },0,網(wǎng)頁文檔對(duì)象)。

        Step3:取網(wǎng)頁文檔對(duì)象中具體元素并操作。以“CALIS山東省文獻(xiàn)信息服務(wù)中心”館際互借員登錄界面[10]為例,“賬號(hào)”文本框源碼為“”,自動(dòng)填寫用戶名“zhuyq”可用以下代碼:

        元素=網(wǎng)頁文檔對(duì)象.對(duì)象型方法(“getElementBy?Id”,“userid”)

        元素.寫屬性(“value”,“zhuyq”)

        如元素?zé)o“id”和“name”,可使用“getElementsByTag?Name”取同類Tag元素集合,再據(jù)元素特殊屬性如矩形大小、坐標(biāo)等篩選。如網(wǎng)頁含框架,還需搜索框架。對(duì)于跨域框架,如類似“”則相對(duì)復(fù)雜,可調(diào)用IServiceProvider接口實(shí)現(xiàn)網(wǎng)頁元素的定位和操作[11],算法如圖2所示。

        圖2 跨域框架操作

        3.2格式化用戶提交的文獻(xiàn)請(qǐng)求

        自動(dòng)登錄后,取“新收到讀者申請(qǐng)”列表,逐一跳轉(zhuǎn)列表各鏈接,在“事務(wù)信息”詳情頁,提取用戶郵箱、文獻(xiàn)類型、出版物名稱、文章題目等信息,進(jìn)而決定后續(xù)自動(dòng)操作方法及目標(biāo),流程如圖3所示。

        圖3 格式化用戶提交的文獻(xiàn)請(qǐng)求

        3.3自動(dòng)檢索館藏資源并下載

        結(jié)合山東師范大學(xué)圖書館實(shí)際,對(duì)用戶提交請(qǐng)求,紙本資料以檢索館藏OPAC為主;電子資源以檢索“讀秀”為主;另據(jù)語種、學(xué)科分類,選相關(guān)專題數(shù)據(jù)庫做輔助檢索。如OPAC顯示館藏有紙本資源,采集網(wǎng)頁源碼,使用正則表達(dá)式篩選館藏地及索取號(hào)信息,供后續(xù)推送結(jié)果;如館藏有電子資源,自動(dòng)下載全文,供后續(xù)推送。算法上,除操作網(wǎng)頁文檔對(duì)象,同時(shí)調(diào)用HTTP下載協(xié)議以及諸如SendMessage、PostMessage等Windows API。筆者就此曾專門撰文[12],另外自動(dòng)檢索駐濟(jì)協(xié)作館聯(lián)合目錄、各館資源發(fā)現(xiàn)系統(tǒng)亦與此類似,不再贅述。

        3.4自動(dòng)檢索互聯(lián)網(wǎng)免費(fèi)資源并下載

        互聯(lián)網(wǎng)資源浩如煙海,結(jié)合本校用戶文獻(xiàn)請(qǐng)求范圍及筆者工作實(shí)踐,劃定www.socolar.com、百度文庫、Google學(xué)術(shù)搜索、新浪愛問、道客巴巴作為互聯(lián)網(wǎng)免費(fèi)資源檢索范圍。此類資源站中,有些檢索到全文可直接下載;有些需登錄,甚至要求賬號(hào)達(dá)到一定積分值方可下載。對(duì)前者,采用3.3所述方法即可;對(duì)后者,筆者針對(duì)不同網(wǎng)站特點(diǎn)制作了賬號(hào)自動(dòng)申請(qǐng)、自動(dòng)分享軟件,采用ADSL斷網(wǎng)重連自動(dòng)換IP的方法規(guī)避驗(yàn)證碼限制,借以獲取積分,提升賬號(hào)下載流量。

        3.5自動(dòng)推送結(jié)果并自動(dòng)結(jié)算

        綜合各自動(dòng)操作結(jié)果,核查最終有否紙本或電子資料可提供給用戶。如有,利用SMTP協(xié)議向3.2中采集的用戶郵箱發(fā)送郵件,推送紙本資源館藏地、索取號(hào)或電子文檔全文,之后可自動(dòng)執(zhí)行“本館運(yùn)送”操作;如沒有則記錄,供后續(xù)轉(zhuǎn)人工操作。

        圖4  CALIS“本館運(yùn)送”操作界面

        CALIS館際互借系統(tǒng)執(zhí)行“本館運(yùn)送”共4個(gè)步驟:①單擊圖4所示下拉框“本館運(yùn)送”項(xiàng);②在彈出窗口單擊“提交”按鈕;③單擊彈出信息框確認(rèn)按鈕,執(zhí)行提交;④關(guān)閉成功提示信息框,其中第1步相對(duì)復(fù)雜。通過網(wǎng)頁SPY工具探知同一頁面各下拉框“id”均為空,“name”均為“send”,可如下操作:

        輸入:含類似“