30歳過ぎから工学 vol.2

http://d.hatena.ne.jp/j130s/ から移行しました.オープンソースロボットソフトウェア技術者兼主夫. 高校・大学学部文系-->何となくソフトウェア開発業-->退職・渡米,テキサス州でシステムズ工学修士取得,しかし実装の方が楽しいと気付き縁があったロボティクス業界で再就職.現在 Texas 州内の産業用オートメーションのスタートアップに Georgia 州から遠隔勤務.

オープンソースで検索サービスアクセス用ソフトを公開しました ("CSE-SQL-API", SQL-like search services accessor)

検索サービス(Google 等)の検索結果を取得する Java で書かれたモジュールです. 各検索サービスの API を経由しないため, API の利用制限を受けず, アカウントも不要です. また java.sql インタフェイスを拡張するため, 他のデータベースにアクセスするプログラムがある場合, それをあまり修正することなしに検索結果を取得できます.
検索サービスの検索結果を利用するプログラムを書きたい時,各検索サービスの API を利用することをまず思い付くかと思うのですが,場合によっては厄介に思えることも幾つかあります:
p-1. 返されるコンテンツ数に上限がある
p-2. たいがい Java script での実装のみ認められる (ややアヤシイ.要調査)
p-3. そもそもアカウント認証を要求される
取得した後の検索結果を処理するプログラムを Java script でない言語で書きたい場合も,Java script と共存させる方法は普通にあるでしょうから(恥ずかしながら未経験...),p-2 は問題にはあまりならない鴨知れません.しかしながら,これらの複数の制限条件がお互いに絡むと厄介な場合はありそうです.
特に私がある案件において Java を使いたかったことがあるので,Java で検索サービスにアクセスする為のモジュールを書きました.で,この冬に空いた時間を使って整備しなおし,この度オープンソースにしました.CSE-SQL-API と名付けました.このモジュールは上記の諸問題を回避できる他,java.sql を拡張することで,DBMS への問合せの感覚で Google 他の検索サービスからも結果を取って来られます.

モジュール構成は基本機能を提供するコア部分と, 各検索サービスにアクセスする "アクセサー" 部分とに分かれます. 現在のところ実装済のアクセサーは Google.com 用と ACM Digital Library (コンピュータ系で世界最大の学会の一つ ACM の論文検索サービス)用との二つです. 有名どころをさしおいてマニアックな ACM をサポートしているので個人的需要に基づいてます^^;.
今後.

  • Bing や Yahoo! 等他の検索サービス用のアクセサーを, 私でない誰かが作ることができます. 今の所私自信が作るモチベーションがあるのは Google Scholar くらいです.
  • 利用者が増えればそれだけドキュメントの不備, バグや修正要望が出るでしょう. 随時対応していきます

ソースコード,実行ファイル等すべてここで取得できます.



1/15/2011) Google アクセサーに関し, Google 社の利用規定にひっかかる可能性があることが判りました.
Google Terms of Service

5.3 You agree not to access (or attempt to access) any of the Services by any means other than through the interface that is provided by Google, unless you have been specifically allowed to do so in a separate agreement with Google. You specifically agree not to access (or attempt to access) any of the Services through any automated means (including use of scripts or web crawlers) and shall ensure that you comply with the instructions set out in any robots.txt file present on the Services.
同社が認めている方法以外での "automated means" は認めない, ということです. Google.co.jp も同様でした. 個人的見解ですが CSE-SQL-API によるアクセスは利用法によって automated means に該当する場合がありそうと考えました. 禁止行為を幇助する可能性があるものを提供するわけにはいかないので, 残念ですが Google アクセサーは削除し, 今後も Google 関連サービスへのアクセサーは作りません. また, 他サービスに関しても利用規定を調べるように心がけます.
また, 以下記事で, JSONJava に変換して, Google の検索サービスにアクセスするサンプルが載っています (がしかしこれも利用規定に違反する疑いがあります).
http://stackoverflow.com/questions/3727662/how-can-you-search-google-programmatically-java-api