加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔: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);
                });               
            });
        });
    });
    function createTableHeader()
    {
        var tr=document_createElement_x_x_x_x_x_x("tr");
        var th=document_createElement_x_x_x_x_x_x("th");
        th.innerHTML="ISBN10";
        $(tr).append(th);
       
        th=document_createElement_x_x_x_x_x_x("th");
        th.innerHTML="ISBN13";
        $(tr).append(th);
       
        th=document_createElement_x_x_x_x_x_x("th");
        th.innerHTML="作者";
        $(tr).append(th);
       
        th=document_createElement_x_x_x_x_x_x("th");
        th.innerHTML="出版社";
        $(tr).append(th);
       
        th=document_createElement_x_x_x_x_x_x("th");
        th.innerHTML="出版时间";
        $(tr).append(th);
       
        th=document_createElement_x_x_x_x_x_x("th");
        th.innerHTML="简介";
        $(tr).append(th);
       
        th=document_createElement_x_x_x_x_x_x("th");
        th.innerHTML="封面";
        $(tr).append(th);
       
        $("#tblRS").append(tr);
    }
    function showRS(rs)
    {
        $("#tblRS").empty();
        createTableHeader();
        for(var i=0;i<rs.rows.length;i++){
            var tr=document_createElement_x_x_x_x_x_x("tr");
            var td=document_createElement_x_x_x_x_x_x("td");
            var img=document_createElement_x_x_x_x_x_x("img");
           
            td.innerHTML=rs.rows.item(i).ISBN10;
            $(tr).append(td);
           
            td=document_createElement_x_x_x_x_x_x("td");
            td.innerHTML=rs.rows.item(i).ISBN13;
            $(tr).append(td);
           
            td=document_createElement_x_x_x_x_x_x("td");
            td.innerHTML=rs.rows.item(i).Authors;
            $(tr).append(td);
           
            td=document_createElement_x_x_x_x_x_x("td");
            td.innerHTML=rs.rows.item(i).Publisher;
            $(tr).append(td);
           
            td=document_createElement_x_x_x_x_x_x("td");
            td.innerHTML=rs.rows.item(i).Published;
            $(tr).append(td);
           
            td=document_createElement_x_x_x_x_x_x("td");
            td.innerHTML=rs.rows.item(i).Intro;
            $(tr).append(td);
           
            td=document_createElement_x_x_x_x_x_x("td");
            var img=document_createElement_x_x_x_x_x_x("img");
            $(img).attr("src",rs.rows.item(i).ImagePath);
            $(td).append(img);
            $(tr).append(td);
           
            $("#tblRS").append(tr);
        }
    }
   
</script>
</head>
<body>
<h1>lltISBN Search for Chrome</h1>

ISBN号:<input type="text" id="txtISBN">
<input type="button" value="查找" id="btnQuery" >
<input type="button" value="显示所有数据" id="btnQueryAll" >
<br />
<div id="divCount"></div>
<hr>
<table id="tblRS"></table>
<h5>注:数据来源http://www.openisbn.com</h5>
</body>
</html>


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有