我是圖書館的工讀生,有一項工作是圖書館的電子資源檢測。
內容是檢查所有的電子資源是否能正常使用。
這麼無聊的事情,為什麼不交給程式去做呢?
前言
之所以會想寫程式來解決,是因為他連結太麻煩了:(
點進A電子資源後,會先到圖書館系統A的頁面,再點擊連結才會做轉址的動作。
![](https://i0.wp.com/mlgzackfly.com/blog/wp-content/uploads/2021/09/image.png?resize=509%2C70&ssl=1)
![](https://i0.wp.com/mlgzackfly.com/blog/wp-content/uploads/2021/09/image-1.png?resize=512%2C252&ssl=1)
![](https://i0.wp.com/mlgzackfly.com/blog/wp-content/uploads/2021/09/image-2.png?resize=512%2C252&ssl=1)
既然動作重複性高,為什麼不寫一個程式讓他自動檢測呢?
內容
點進電子資源後,會發現每個資源都有屬於自己的alma(e.x alma991003786330204121),進一步的尋找後,發現了一個API網址。https://nkust.primo.exlibrisgroup.com/primaws/rest/pub/edelivery/alma991003786330204121?vid=886NKUST_INST:86NKUST
中間能發現他也有放置一個alma,於是目標就是抓取每一項電子資源的alma並丟到網址中,使用API。
API內容如下:
{"beaconO22":"57",
"electronicServices" : [ {
"adaptorid" : "ALMA_01",
"ilsApiId" : "61102217450004121",
"serviceUrl" : "/view/action/uresolver.do?operation=resolveService&package_service_id=4607220230004121&institutionId=4121&customerId=4120",
"licenceExist" : "false",
"packageName" : "Abbreviations.com 縮寫查詢網",
"authNote" : "",
"publicNote" : "Open Access<br/>",
"numberOfFiles" : 0,
"hasAccess" : false,
"serviceType" : "ELECTRONIC",
"registrationRequired" : false
} ],
"serviceMode" : [ "Viewit" ],
"availability" : [ "not_restricted" ],
"availabilityLinks" : [ "directlink" ],
"displayedAvailability" : "not_restricted",
"displayLocation" : false,
"additionalLocations" : false,
"digitalAuxiliaryMode" : false,
"hideResourceSharing" : false,
"GetIt1" : [ {
"category" : "Alma-E",
"links" : [ {
"isLinktoOnline" : true,
"getItTabText" : "service_viewit",
"adaptorid" : "ALMA_01",
"ilsApiId" : "61102217450004121",
"link" : "/view/action/uresolver.do?operation=resolveService&package_service_id=4607220230004121&institutionId=4121&customerId=4120",
"inst4opac" : "",
"@id" : "_:0"
} ]
} ],
"link" : [ ]
}
serviceUrl
及 link
的值都是我們需要的內容,他會帶我們到電子資源的頁面,因為內容都一樣,所以擇一即可。
將值帶入網址中,會得到https://nkust.primo.exlibrisgroup.com/view/action/uresolver.do?operation=resolveService&package_service_id=4607220230004121&institutionId=4121&customerId=4120
這個會直接將頁面導向該資源的正確位址。
結論
其實原本是用nodejs寫,最近才改成Python的,實測的話434項約10分鐘檢測完(之前手工測300多項時,耗時約一小時。),省下了將近六分之五的時間。
不過也因為是自用,所以功能不完善、程式碼也很亂QQ
之後會慢慢的做改變,讓其他工讀生也能使用(?