2006-09-08

emacs-w3m の Google-en 検索で英語検索ができない

最近、Emacs-w3m の w3m-search で、検索エンジンを google-en にしても英語検索が出来なくなった。

例えば、emacs を google-en で検索しても、日本語のページがトップに出てくる。

どうやら、Google は、検索をかけてる国の情報か何かを抜き出して、Google.com からでも日本語をメインに検索するようにしているらしい。

検索 URL の末尾に &hl=en を加えると英語検索に戻るっぽい。emacs-w3m の CVS へのパッチを書いた。

--- w3m-search.el 13  6月 2006 20:49:56 +0900 1.57
+++ w3m-search.el 09  9月 2006 09:25:41 +0900 
@@ -78,19 +78,21 @@
       "http://www.google.com/search?q=%s&hl=ja&lr=lang_ja&ie=utf-8"
       utf-8)
      ("google-en"
-      "http://www.google.com/search?q=%s")))
+      "http://www.google.com/search?q=%s&hl=en&ie=utf-8"
+      utf-8)))
   (ja
    '(("google"
       "http://www.google.com/search?q=%s&hl=ja&lr=lang_ja&ie=Shift_JIS"
       shift_jis)
      ("google-en"
-      "http://www.google.com/search?q=%s")))
+      "http://www.google.com/search?q=%s&hl=en")))
   (utf-8
    '(("google"
       "http://www.google.com/search?q=%s&ie=utf-8"
       utf-8)
      ("google-en"
-      "http://www.google.com/search?q=%s")))
+      "http://www.google.com/search?q=%s&hl=en&ie=utf-8"
+      utf-8)))
   (t
    '(("google"
       "http://www.google.com/search?q=%s")

いくつか補足説明を。

utf-8 を扱える場合は、極力、utf-8 を入力エンコーディングとして使うようにした。最近の google は、è のようなアクセント付記号も、ちゃんと理解してくれる。次の検索結果を比べられたし。

英語で検索する場合は、&hl=en を加えている。ただし、次のコードには手を加えていない。

  (t
   '(("google"
      "http://www.google.com/search?q=%s")
     ("google-ja"
      "http://www.google.com/search?q=%s&hl=ja&lr=lang_ja&ie=Shift_JIS"
      shift_jis))))

これは、日本国外から使う場合を考慮してのこと。

例えば、フランスから "google" で検索をかけてる人は、自動的に Google.fr の検索結果が現れていると考えられる。従って、"google" を強制的に英語ページの検索にしてしまうのは、いけないと思った。

突っ込み、etc... あれば、どうぞコメントよろしく。

No comments:

Post a Comment