Google の検索結果に Wikipedia の定義を追加する Greasemonkey

2006-07-01 02:21:37 | | このエントリーを含むはてなブックマーク | Tag: cc-by google greasemonkey js wikipedia

Google の検索語に対する Wikipedia の定義を時々みたいと思う。そんなときは Google with Wikipedia v2.01.user.js(Last Updated: 2008-08-27T18:23)。って私だけか。

最初、iframe 要素内に Wikipedia の記事を表示させようと思ったが、Wikipedia に含まれる Javascript の所為でフレームを外されて Wikipedia に飛んでしまうので iframe などを用いて直接 Wikipedia を表示させる方法は使用不能。

少しググってみたところ Greasemonkey なら GM_xmlhttpRequest を用いれば外部サイトであっても取得できるらしい。というわけで実装してみたら、XHTML 1.0 なので XML 宣言がありませんでした(従って xmlHttpRequest.responseXML が undefined でした)。

というわけで無理矢理、定義の部分を抽出している感じです、はい。あと見た目は Google 検索の一部っぽくしてみたかったので、font タグとか普通に吐いてます。

(2006-11-02T08:35 追記)ライセンスは Creative Commons by 2.1 Japan License です。派生物を別ライセンスの下で配布しても構いませんが、原作者の氏名公開等は必要です。

(2006-11-21T11:25 追記)最近、Google の吐き出す HTML が変更になったようなので対応しました。

(2008-08-21T22:30 追記)HTML 構造の変更などに対応しました。詳しくは v2.00の記事をご覧ください。

(2008-08-27T18:23 追記)コーディングミスなどを修正しました。

This article is modified at 2008-08-27 18:23:42.

Related Entries

Trackbacks

Trackback URI: http://blog.c--v.net/trackback/2006/07/01/1

There is no trackback.

Comments

by 名無し at 2006-10-07 15:42:14

WikiリンクのURL置換が先頭の一ヶ所しか行なわれていないようです。
以下を修正して直りました。

+++ google-with-wikipedia v1.01.new.user.js 2006-10-07 15:40:46.000000000 +0900
@@ -108,7 +108,7 @@
// Google の検索結果に追加する
function addExplanation(text) {
// URL を絶対 URL に変換する
- text = text.replace('/wiki', 'http://ja.wikipedia.org/wiki');
+ text = text.replace('/wiki', 'http://ja.wikipedia.org/wiki', 'g');

// 検索結果に追加する
var wpResultText = getNodeSnapshot('//span[@id = "wp_result_text"]');

by Ryosuke SEKIDO at 2006-10-07 22:41:51

連絡ありがとうございます。個人的に使っているスクリプトはその対処が済んでいたもので、間違って古いものをアップロードしていたものと思います。申し訳ない。

スクリプトは replace(/\/wiki/g, ...); の形式で反映させていますので、確認して下さい。

Name
URI (Homepage or Email)
Body