999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

CALIS館際互借系統文獻預處理程序設計

2015-05-12 07:50:44朱玉強山東師范大學圖書館山東濟南250014
圖書館學刊 2015年1期
關鍵詞:用戶

朱玉強(山東師范大學圖書館,山東濟南250014)

?

CALIS館際互借系統文獻預處理程序設計

朱玉強
(山東師范大學圖書館,山東濟南250014)

[摘要]針對館際互借員需要對用戶向CALIS系統提交的文獻請求進行大量重復性預處理操作的現狀,設計并實現基于網頁文檔對象的輔助程序,全自動檢索、獲取并向用戶推送免費資源,執行“本館運送”操作,以提升館際互借員操作體驗,有效節省圖書館經費。

[關鍵詞]CALIS館際互借網頁文檔對象跨域訪問

[分類號]TP393

1 引言

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

2需求及技術思路

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

圖1 總體工作流程

3關鍵方法與技術

3.1取網頁文檔對象、定位目標網頁元素

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

輸入:Internet Explorer或IE內核瀏覽器。

輸出:可精確定位的目標網頁元素。

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

Step2:取hwnd_IES網頁文檔對象。易語言中核心代碼為:

①Message=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,網頁文檔對象)。

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

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

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

如元素無“id”和“name”,可使用“getElementsByTag?Name”取同類Tag元素集合,再據元素特殊屬性如矩形大小、坐標等篩選。如網頁含框架,還需搜索框架。對于跨域框架,如類似“”則相對復雜,可調用IServiceProvider接口實現網頁元素的定位和操作[11],算法如圖2所示。

圖2 跨域框架操作

3.2格式化用戶提交的文獻請求

自動登錄后,取“新收到讀者申請”列表,逐一跳轉列表各鏈接,在“事務信息”詳情頁,提取用戶郵箱、文獻類型、出版物名稱、文章題目等信息,進而決定后續自動操作方法及目標,流程如圖3所示。

圖3 格式化用戶提交的文獻請求

3.3自動檢索館藏資源并下載

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

3.4自動檢索互聯網免費資源并下載

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

3.5自動推送結果并自動結算

綜合各自動操作結果,核查最終有否紙本或電子資料可提供給用戶。如有,利用SMTP協議向3.2中采集的用戶郵箱發送郵件,推送紙本資源館藏地、索取號或電子文檔全文,之后可自動執行“本館運送”操作;如沒有則記錄,供后續轉人工操作。

圖4  CALIS“本館運送”操作界面

CALIS館際互借系統執行“本館運送”共4個步驟:①單擊圖4所示下拉框“本館運送”項;②在彈出窗口單擊“提交”按鈕;③單擊彈出信息框確認按鈕,執行提交;④關閉成功提示信息框,其中第1步相對復雜。通過網頁SPY工具探知同一頁面各下拉框“id”均為空,“name”均為“send”,可如下操作:

輸入:含類似“

<small id="u0uuu"></small>
  • <noscript id="u0uuu"></noscript>
    <code id="u0uuu"><pre id="u0uuu"></pre></code>
  • <sup id="u0uuu"><code id="u0uuu"></code></sup>
  • <tr id="u0uuu"><blockquote id="u0uuu"></blockquote></tr>