貧者の横断検索
むかし、複数のサイトをまとめて検索する横断検索が流行ったことがあった。検索窓に検索語を入れてボタンを押すと、複数のウィンドウが開いて、それぞれのサイトを検索する。こうした機能を実現するには、以前はCGIプログラムが使われていて面倒だったが、今はhtmlとJavaScriptだけで作ることができる。
一方、没年調査は、同じ検索語(人名)をいろいろなサイトに貼り付けて検索、という作業が必要。そのため、作業が楽にならないかと考えた結果がこれ。名付けて「貧者の横断検索」(※1)。このサンプルでは、次の6つのサイトを検索する。このうち、GoogleとGoogleブックスは、検索語を ""(二重引用符)で囲んで、フレーズ検索を行なうようにしている(※2)。自分で作った横断検索なら、検索するサイトを取捨選択したり、細かいカスタマイズが可能になる。これは大きなメリット。
著作者情報 公開調査(国立国会図書館)
Web NDL Authorities(国立国会図書館)
国立国会図書館デジタルコレクション(国立国会図書館)
CiNii Research(国立情報学研究所)
Google(Google)
Googleブックス(Google)
元ネタは、教えて!goo の 一括検索ページを作るには何が必要?。このままだと複数のウィンドウが同時に開いてしまうので、SAMURAI ENGINEER の 【JavaScript入門】処理を一時停止するsleep機能の実現方法まとめ を参考にして、時間差をつけて順番に開くようにした。
この中で一番面倒なのは、検索サイトを解析して、検索用のURLを作る部分。それには、検索サイトでいろんな検索をしたり表示順を変えたりして、URLの部分がどう変るのかをチェックする必要がある。検索サイトに簡易検索と詳細検索がある場合は、最初は簡易検索のURLで設定して動くことを確認して、さらに詳細検索のURLをチェックしてきめ細かく設定するといいだろう。また、検索用APIがある場合はそれを利用するのが簡単かもしれない。
以下はサンプルのhtml(ダウンロード)。検索サイトのURLのサンプルもつけたので、適当に直して使ってほしい。
なお、このサンプルでは6つのウィンドウ(タブ)を開くだけだが、開く数を増やすと、それなりに負荷がかかる。また、ループで無限に開くようにするとブラウザクラッシャーになってしまうので、ご利用は自己責任ということで。
また、WWWブラウザが「ポップアップをブロックする」設定になっていると、最初のウィンドウが開いた時点で止まってしまうようだ。そうした場合は、ブラウザの設定を変更してほしい。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>貧者の横断検索</title>
</head>
<body>
<script>
<!--
function SEARCH(VAL){
AR = new Array();
// 著作者情報公開調査
AR[0] = "https://dl.ndl.go.jp/openinq/search?keyword="+VAL;
// Web NDL Authorities
AR[1] = "https://id.ndl.go.jp/auth/ndla/?g=all&qw="+VAL;
// 国立国会図書館デジタルコレクション
AR[2] = "https://dl.ndl.go.jp/search/searchResult?accessRestrictions=inlibrary&accessRestrictions=ooc&accessRestrictions=internet&collection=A00001&collection=A00002&collection=A00003&collection=A00014&collection=A00015&collection=A00016&collection=A00017&collection=A00019&collection=A00022&collection=A00024&collection=A00121&collection=A00122&collection=A00150&collection=A00152&collection=A00162&collection=A00173&collection=B00000&fullText=true&eraType=AD&identifierItem=ISBN&includeVolumeNum=true&pageNum=0&pageSize=50&sortKey=ISSUED_ASC&displayMode=list&keyword="+VAL;
// CiNii Research
AR[3] = "https://cir.nii.ac.jp/all?count=100&sortorder=1&lang=ja&q="+VAL;
AR[4] = "https://www.google.co.jp/search?q=\""+VAL+"\"";
// Googleブックス
AR[5] = "https://www.google.co.jp/search?&tbm=bks&q=\""+VAL+"\"";
// 配列に格納した検索エンジンのURL分ウィンドウを開く
for(i = 0; i < AR.length; i++){
window.open(AR[i]);
sleep(500);
}
}
// 処理を一時停止
function sleep(waitMsec) {
var startMsec = new Date();
while (new Date() - startMsec < waitMsec);
}
//----------------------------------------------
// 検索サイトのサンプル
// 国立国会図書館サーチ
// AR[] = "https://iss.ndl.go.jp/books?mediatypes%5B%5D=1&sort=ua&any="+VAL;
// 次世代デジタルライブラリー
// AR[] = "https://lab.ndl.go.jp/dl/fulltext?from=0&sort=publishyear%3Adesc&searchfield=&keyword="+VAL;
// J-Stage
// AR[] = "https://www.jstage.jst.go.jp/result/global/-char/ja?fromPage=%2Fsearch%2Fglobal%2F_search%2F-char%2Fja&freeText=&item1=4&cond1=¬Cond1=0&item2=&word2=&cond2=¬Cond2=&item3=&word3=&cond3=¬Cond3=&item4=&word4=¬Cond4=&count=50&from=0&order=6&type=&license=&attribute=&languageType=&option=&yearfrom=&yearto=&category=&cdjournal=&favorite=&translate=0&bglobalSearch=false&sortby=6&showRecodsH=50&showRecords=50&word1="+VAL;
// 全国短期大学紀要論文索引PLUS
// AR[] = "https://opac.jissen.ac.jp/repo/repository/tandai/search/simple/?lang=0&mode=0&list_sort=2&disp_cnt=100&req=search&con_kywd="+VAL;
// BIBLIS PLUS
// AR[] = "https://opac.jissen.ac.jp/repo/repository/bunken/search/simple/?lang=0&mode=0&list_sort=3&disp_cnt=100&req=search&con_kywd="+VAL;
// HathiTrust
// AR[] = "https://babel.hathitrust.org/cgi/ls?field1=ocr;a=srchls;sz=100;q1=\""+VAL+"\"";
// Internet Archive
// AR[] = "https://archive.org/search.php?sin=TXT&sort=date&query=\""+VAL+"\"";
//----------------------------------------------
//-->
</script>
<form onSubmit="SEARCH(this.TXT.value);return false;">
*<input type="text" size="15" name="TXT"><input type="submit" value="横断検索">
</form>
</body>
</html>
2023年3月9日作成/2024年10月30日修正
注
※1 「貧者の横断検索」は、菅育夫(明治学院大学図書館)の「発想力とOPEN」ということについて(Internet Archiveにリンク)にあったことば。やっていることは基本的に同じなので、ことばを拝借させてもらった。
※2 Googleのフレーズ検索は、完全に一致した人名だけ検索してくれるので便利。欠点は、人名の漢字に旧字体と新字体がある場合は、旧字体と新字体のそれぞれで検索する必要があることかな。ついでに、Googleでたくさん検索するなら、ページめくりが楽になるように、ブラウザにAutoPagerizeのような拡張機能を追加するといいだろう。