
加载中…
个人资料
- 博客访问:
- 关注人气:
- 获赠金笔:0支
- 赠出金笔:0支
- 荣誉徽章:
批量ISBN查询导出工具
(2012-08-26 12:25:49)
标签:
isbn
批量
查询
导出
工具
|
分类:
设计开发
|
某些情况下,我们需要通过ISBN去获得图书的元数据来构建本地数据库,有些图书馆的业务系统兼有此功能,有些做信息服务的公司也有此类收费服务。网上虽搜到一些小工具,但没能下载到工具。想想,还是自已动手吧。
以ISBN去查询图书信息,主要是用在自建数据库时使用,这些图书的元数据是不必再重复录入,以ISBN号去检索都能找到。但关键在于如何“批量”,“免费”,“导出”为自已数据库所需要的格式。
ISBN库的数据来源采用OpenISBN(http://www.openisbn.com)提供的,还是采用页面分析技术来提取所需信息,再将这些信息插入到自已的数据库中。由于时间关系,只是做了个草稿,但基本能完成任务。
使用技术:AIR,数据库sqlite。sqlite管理工具使用firefox的SQLite
Manager。采集页面上的文字信息及图片信息,封面图片是来自Amazon服务上的,提供一个下载图片的功能,毕竟有些情况下需要将图片放在自己的服务器上,而不是引用Amazon链接。
calis单条免费,批量收费.国图也有这些数据,还有一些联合编目系统.
还是找国内的网站来抓取比较快速一些,对于国内出版的书也比较全.比如:http://www.cbip.cn/index.aspx
最好能直接按标准格式导出.这在里可批量查询,更高效些.
书号查询官网
http://www.shuhaochaxun.com/index.html
http://www.cnmarc.org/
http://www.91marc.cn/
http://hi.baidu.com/sjzwcs/item/0e14cc0d9102c931a2332ad6
国图的OPAC(有MARC),http://opac.nlc.gov.cn
http://s1/middle/67532f7cgc8240fcd9c00&690
顺便做了一个HTML5的查询页面,使用jquery,在chrome中调试。可惜使用的WEB数据库sqlite只能在Chrome中使用,firefox还不支持。在Chrome用三个函数就能使用Sqlite了,openDatabase获得db对象,db.transaction,dx.executeSql执行SQL语句。chrome的数据文件保存在安装目的Chrome\User
Data\Default\databases\file__0下,
http://s5/middle/67532f7cgc8241bd25c84&690
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>lltISBN Search for
Chrome</title>
<script type="text/javascript"
src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
var db
;
document.addEventListener('DOMContentLoaded',function(){
db =
openDatabase('lltISBNDB','','ISBN Query demo',102400);
db.transaction(function(tx){tx.executeSql('CREATE TABLE IF NOT
EXISTS ISBN (ISBN10 TEXT PRIMARY KEY,ISBN13 TEXT,Authors
TEXT,Keywords TEXT,Pages TEXT,Published TEXT,Language TEXT,Category
TEXT,Binding TEXT,Price TEXT,Rating TEXT,Publisher TEXT,URL
TEXT,ImagePath TEXT,Intro TEXT,Title TEXT);',[]);});
$("#btnQueryAll").bind("click", function()
{
db.transaction(function(tx){
tx.executeSql('SELECT * FROM
ISBN',[],function(tx,rs){
showRS(rs);
});
});
});
$("#btnQuery").bind("click", function()
{
db.transaction(function(tx){
tx.executeSql('SELECT * FROM ISBN WHERE
ISBN10=?',[$("#txtISBN").val()],function(tx,rs){
showRS(rs);
});