恩 原本以為是一個簡單的程式工作,叫我用vb.net透過書本isbn 去撈他的書籍相關資料
查了一下似乎沒有相關的api可以使用,所以當然而的就跑去國家圖書館撈他網頁回來分析資料啦
isbn有10碼跟13碼這不是問題,反正都是丟去給國圖網頁處理
只是處理的機讀資料有點難搞
000 cam0 010 0 $a978-986-225-005-1$b平裝$dNT$250 091 $acw$bCIP97014167 100 $a20080725d2008 k y0chiy50 e 101 0 $achi 102 $acw 200 1 $a15分鐘就上桌$e第一次進廚房也OK,圍上圍裙的料理初驗體$fBoutique會社編著 205 $a初版 210 $a臺北縣中和市$c漢湘文化$d2008.11 211 $a0811 215 0 $a 面$d 公分 606 $2cst$a食譜
資料就類似這樣,所以大致上會知道像是200 裡面的$a就會是書名 210的$c是出版社 $d是出版日期…
good!知道這些分類後 至少有個大概的概念,討厭的正規表示式寫一下應該就完成了(這邊我還是要特別說,雖然寫過好幾次regex 但是每次還是都要測試好久才會得到我要的東西..)
原本我以為事情就這麼的簡單完美就結束了,直到我隨手打了幾本書的isbn到我的程式裡面出現了error我才發現事情並不是這麼樣的單純。
原來MARC還有分阿!! 接下來就又是不斷的google 知道其實大致上有分兩種,CMARC跟MARC 21這兩個,而光cmarc3的欄位就有173個,且也不是每本書都會有這些欄位,看那個出版商有沒有填,而悲慘的是marc21的資料跟cmarc的資料其實不是很對的起來 格式代號也都不一樣
這就造成了我去撈國圖資料時 我還得必須判斷他是哪種的marc才能決定我的內容的標示塊該套哪個數字
就拿書名舉例來說好了,書名在cmarc裡面是200$a 但是在marc21裡面卻是245$a
作者:cmarc->200$f 而marc21->245$c
這下就囧了,而網路上也找不太齊全這些對照的資料,就為了這個搞了一個下午,而時間都是花在google而不是寫code
最後終於大致上整理出來我要的欄位跟他們對應的標示塊後
我又跑去丟資料給國圖吃 發現怎有些少數書籍資料還是錯的,原本以為是我code哪裡寫錯了,而看了html data後才發現,搞啥鬼阿,國圖撈回來的書的資料本來就是錯的 感覺一整個就很不可靠
雖然大致上就這樣算交差了啦,原始資料就是錯的我也沒辦法。程式沒辦法思考也只能這樣了
只是當時國圖的這些資料到底是誰建的阿…出版商?國圖工讀生? 囧
Hi David:
請教一個基本的問題: 如何去國家圖書館撈他網頁回來分析資料呢? 他們有API嗎? 要怎麼撈呢?
我也想寫一個程式去抓一些書本的基本資料,目前我們教會的圖書館有大約4000本書,還在增加中,想直接去國圖的資料裡抓,就不用自己打了!
謝謝哦
Clement
沒有api 硬爬網站去撈吧
去過國圖裡面當建資料的(編目)
性質是外面公司派駐
這種東西本來就只能手動檢查輸入,打錯字在所難免,不過我已經盡力再三檢查才儲存
國圖已經算標準很高了,更不用說其他各地圖書館不知道請誰來建
所以圖書館裡面的資料本來就是亂七八糟的