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

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

前言

之所以會想寫程式來解決,是因為他連結太麻煩了:(
點進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內容如下:

{"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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *