新浪博客

批量ISBN查询导出工具

2012-08-26 12:25阅读:
某些情况下,我们需要通过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
批量ISBN查询导出工具
顺便做了一个HTML5的查询页面,使用jquery,在chrome中调试。可惜使用的WEB数据库sqlite只能在Chrome中使用,firefox还不支持。在Chrome用三个函数就能使用Sqlite了,openDatabase获得db对象,db.transaction,dx.executeSql执行SQL语句。chrome的数据文件保存在安装目的Chrome\User Data\Default\databases\file__0下,
批量ISBN查询导出工具
<!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>

我的更多文章

下载客户端阅读体验更佳

APP专享