0%

圖書館薪水小偷,偷懶程式設計

我是圖書館的工讀生,有一項工作是圖書館的電子資源檢測。
內容是檢查所有的電子資源是否能正常使用。
這麼無聊的事情,為什麼不交給程式去做呢?

前言

之所以會想寫程式來解決,是因為他連結太麻煩了:(
點進A電子資源後,會先到圖書館系統A的頁面,再點擊連結才會做轉址的動作。

既然動作重複性高,為什麼不寫一個程式讓他自動檢測呢?

內容

點進電子資源後,會發現每個資源都有屬於自己的alma(e.x alma991003786330204121),進一步的尋找後,發現了一個API網址。
https://nkust.primo.exlibrisgroup.com/primaws/rest/pub/edelivery/alma991003786330204121?vid=886NKUST_INST:86NKUST
中間能發現他也有放置一個alma,於是目標就是抓取每一項電子資源的alma並丟到網址中,使用API。
API內容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{"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" : [ ]
}

serviceUrllink 的值都是我們需要的內容,他會帶我們到電子資源的頁面,因為內容都一樣,所以擇一即可。

將值帶入網址中,會得到
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

之後會慢慢的做改變,讓其他工讀生也能使用(?

https://github.com/mlgzackfly/nkust_lib_check