2008年4月30日水曜日

【拡張現実AR】 ARToolKitのJava版NyARToolkitを試す。

Shiva's CafeでARToolKitのJava版NyARToolkitが公開されている。

以下、デモを実行するためのセットアップしたときのログ。

NyARToolkitをJWSとAppletにする!
JDK6をインストール後、Java Applet サンプル(Simple Lite)にアクセスしたが、以下の例外・エラーで失敗した。

java.lang.NullPointerException
at jp.nyatla.nyartoolkit.jmf.utils.JmfCameraCapture.stop(JmfCameraCapture.java:100)
at jp.nyatla.nyarmqoviewer.NyARMqoViewerAPP.stop(NyARMqoViewerAPP.java:209)
at jp.nyatla.nyarmqoviewer.NyARMqoViewer.destroyModule(NyARMqoViewer.java:115)
at jp.nyatla.nyarmqoviewer.Applet.destroy(Applet.java:99)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
basic: 例外: java.lang.NullPointerException
java.lang.NullPointerException
at jp.nyatla.nyartoolkit.jmf.utils.JmfCameraCapture.stop(JmfCameraCapture.java:100)
at jp.nyatla.nyarmqoviewer.NyARMqoViewerAPP.stop(NyARMqoViewerAPP.java:209)
at jp.nyatla.nyarmqoviewer.NyARMqoViewer.destroyModule(NyARMqoViewer.java:115)
at jp.nyatla.nyarmqoviewer.Applet.destroy(Applet.java:99)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
basic: アプレットスレッドを結合しました...


JMFをインストールしてみる。
JMF 2.1.1e

再起動後、再度Java Applet サンプル(Simple Lite)にアクセスしてみたところ、Simple Liteが正常に動作した。

ラベル: ,

2008年4月29日火曜日

Windows Vista起動後のハードディスクアクセスを劇的に少なくする方法:Super Featchを無効化

Windows Vistaは起動後、やたら長い間ハードディスクが激しく動いている。
おかげで、なかなか使い始める気になれない。

これは、サービスSuper FeatchとReadyBoostを無効にすることでかなり抑えることができる。

スタート→管理ツール→サービス
とメニューをたどって、Super Featchをダブルクリック。
スタートアップの種類を「無効」に変更する。

ReadyBoostについても同様に。
ただし、ReadBoostが使えなくなるのでこちらは好き好きで。

ラベル:

2008年4月28日月曜日

Windows XPを起動して、パスワードなしでログオンする方法

Windows XPはログオンしてから結構ハードディスクのアクセスが長くて、パフォーマンスが出ない。電源スイッチを押してから、自動でログオンしてくれたら何か用事を済ませている間にハードディスクがおとなしくなっている。以下の方法でXPを起動後、自動でログオンしてくれる。

スタート→ファイル名を指定して実行→control userpasswords2→OKボタン

ユーザがこのコンピュータを使うには、ユーザ名とパスワードの入力が必要
のチェックをはずす。
パスワードの入力を求められるので、入力する。

以上。

ラベル:

2008年4月25日金曜日

【Ubuntu】 Ubuntu 8.04 日本語ローカライズ・デスクトップ版リリース

Ubuntu 8.04 日本語ローカライズ デスクトップCDがリリース。
以下よりダウンロードできます。
http://www.ubuntulinux.jp/news/ubuntu804-ja-desktop-cd

7.xxからの変更点は
Xorg 7.3
Linux kernel 2.6.24
GNOME 2.22
Firefox 3 Beta 4
Vinagre (VNC Client)
Brasero (CD/DVDオーサリング)
Inkscape 0.46 (PDFサポート)
ActiveDirectory
iSCSIサポート
Wubi (Windows上の仮想ファイルシステムにUbuntuをインストール)

Wubiはパーティションを切らずにインストールできるので、インストールの敷居を下げる。が、ハードディスク・アクセスが遅くなるのであまり勧められない。Wubiのサイトでは「わずかに遅い」との記述があるが…

ラベル:

【Ubuntu】 8.04の日本語ローカライズは4月25日リリース

Ubuntu Japanese TeamによるとUbuntu 8.04日本語ローカライズドDesktop CDのリリースは4月25日中です。

英語版はもうリリースされてます。

ラベル:

2008年4月24日木曜日

【拡張現実AR】 ARToolkitの開発環境を構築~デバッグ Windows+VisualStudio 2008 Express編

ARToolkitの開発環境をWindows XP+Visual C++ 2008 Express Editionで構築したときの記録。

まず、下記のエントリーを参考にして、ARtoolkitとVisual C++をインストールする。
【拡張現実AR】 ARToolkitのインストール:Windows上で無料で動かす。

無事終わったら、ARToolKit.dswをVisual Studioで開く。

[ARToolkit]\ARToolKit.dsw

ポップアップの警告はすべて、「はい」と答える。

ツリーからsimpleLiteを右クリックしてプロパティを選ぶ。

構成プロパティ→全般→文字セット→マルチバイト文字セットを使用する


simpleLite→Source Files→simpleLite.cをダブルクリック。
main関数のchar glutGamemode[32];の行にブレイクポンとを設定する。
ツリーからsimpleLiteを右クリックしてデバッグ→新しいインスタンスを開始を選ぶ。

すると、以下のエラーが出る。

MSVCP71D.dllが見つからなかったため、このアプリケーションを解しできませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。


siwa32.comのコメントのやり取りを参考に以下のように設定を修正。
simpleLiteで右クリックして、プロパティを選ぶ。

構成プロパティ→リンカ→入力→追加の依存ファイル→libAR.lib libARgsub_lite.lib libARvideo.lib opengl32.lib glu32.lib glut32.lib

simpleLiteで右クリックして、デバッグ→新しいインスタンスを開始を選ぶと、先ほどのエラーは出ない。
が、「Property Sheetのプロパティ」でOKボタンを押したところでDOS窓が落ちる。
一行ずつデバッグすると、440行目の

fprintf(stderr, "main(): Unable to set up AR camera.\n");

でこけてる。どうやら、ウェブカムの設定が読めないということで、エラーとなっている感じ。
コンソールには

setupCamera(): Error loading parameter file Data/camera_para.dat for camera.

と出力されている。
ARToolKit\bin\Data\camera_para.datが読めてないみたい。
C:\Program Files\app\ARToolKit\examples\simpleLite\にARToolKit\bin\DataとARToolKit\bin\Wrlをフォルダごとコピーする。
ツリーからsimpleLiteを右クリックしてデバッグ→新しいインスタンスを開始を選ぶ。

今度は無事simpleLiteを実行できるはずだ。


どうしてもビルド時にGL/glut.hとかglut32.libについてのエラーが出る場合は
glut-3.7.6-bin.zipのglut.hをARToolKit\include\GLにコピー。
glut-3.7.6-bin.zipのglut32.libをARToolKit\libにコピー。
これで、ビルドが通るはず。


参考
ARToolKitを使った拡張現実感プログラミング
siwa.com: ARToolKitにさわってみた

ラベル: ,

【拡張現実AR】 ARToolkitを安定化する方法

ブログ、Pipe Renderより

従来のARToolKitのプログラムは、3Dモデルがすぐに消えてしまうので、そこを改良してみました。

複数のマーカー間の関係を検出し、その関係を用いて表示を安定化します。


ARToolKitの安定化

http://render.s73.xrea.com/pipe_render/2008/03/artoolkit-1.html

プログラムはまだ公開されていないようですが、動画からすごさが十分伝わってきました。
この技術は拡張現実を実用化するのに必ず役立ちそうです。
すごい!

ラベル: ,

2008年4月19日土曜日

DVDをiPod Touchで観る。UbuntuでDVDからmp4にコンバート。k9copy + WinFF

Ubuntu 7.10 Gutsy上で、DVDをiPod Touchで視聴可能なmp4に変換する方法。

まず、DVDをリッピングするのに必要なソフトk9copyをインストールする。

# sudo apt-get install k9copy

WinFFも後で必要になる。以下を参考に。
【Ubuntu:動画】 ffmpegフロントエンド、WinFFで動画コンバート(変換)

「アプリケーション→サウンドとコピー→k9copy」とメニューをたどる。


DVDを挿入するとツリー上にコンテンツが現れる。
チェックをすべてに入れる。
Settings→Configure k9copy→MPEG-4
Codec:MPEG-4 (DivX 4/5)
Audio:mp3
OKボタンを押して、Create MPEG-4ボタンを押す。

保存先を聞かれるので、ファイル名に.divxを付けてSaveボタンを押す。

コンバートが終了したら、WinFFを起動してAddで先ほど作成したdivxファイルを指定する。
Convert toにはH.264 iPod Linux 16:9を選ぶ。
Convertボタンで変換開始。

iTunesからiPodに同期すれば、完了。

ラベル: ,

【Ubuntu】 動画プレイヤーとかMPlayerの発色が変だ!? コントラストに原因?

動画を再生できるが、発色がなんか変。
コントラストを変更するとそれらしい色で再生できる。
が、何か気持ち悪いし、毎回設定を変えるのも。

こういうときは以下のファイルを削除あるいは名前を変更する。
mv ~/.gconf/apps/%gconf.xml ~/.gconf/apps/%gconf.xml.bk

ログアウトして、再度ログインする。

動画を再生しなおすと正常な色で再生ができた。

ラベル: ,

2008年4月18日金曜日

【拡張現実AR】 ARToolKitをインストール:Ubuntu編

ARToolKitをUbuntu 7.10 Gutsyにインストールする。
ARToolKitを動かすにはウェブカムが必要です。
ここでは、Logicool QCam Connectを使っています。

ARToolKit-2.72.1.tgzをダウンロードする。

解凍したディレクトリで
# ./Configure
Enter:1. Video$Linux
Enter:n
Enter:y
Enter:y
# make

エラーが出たら
# sudo apt-get install libglut3-dev
# sudo apt-get install libxmu-dev
# sudo apt-get install libxi-dev

Configureを編集(58行目)
CFLAG="-O -I/usr/X11R6/include -I /usr/src/linux-headers-2.6.22-14/include"

もう一度
# make

binの下にsimpleLiteなどができていたら成功!
# ./simpleLite

ウェブカムの映像が正常にでたら、パターンを印刷する。
patterns\pattHiro.pdf
厚手の紙に印刷したほうが良い。

Webカメラをパターンの正面に合せるとキューブが現れる。
少しずらすくらいなら大丈夫だが、結構すぐ消える。

出にくい場合は、白いテーブルか壁をバックにしたら良い。
それから、指はなるべく紙の端を持つように。


参考
【拡張現実AR】 ARToolkitのインストール:Windows上で無料で動かす。

ラベル: ,

【Ubuntu】 WebカメラLogicool QCam Connectをインストール

xawtvで試そうとしたが、起動するだけで画面がまっ黒になる。
USBから取り外して、Ctrl+Alt+BSで強制終了。

次にEkigaを試した。
設定が長いがひととおり終わると、「カメラ・デバイスからの映像を表示します」が選べる。
小さい窓にちゃんとウェブカム映像が表れた。

と言うわけで、Ubuntu 7.10 Feistyではデバイスなど特にインストール・設定をしなくてもQCam Connectが使えてしまう。

ラベル:

【拡張現実AR】 ARToolkitのインストール:Windows上で無料で動かす。

ARToolkitのインストール手順。

環境
OS: Windows XP
CPU: Pentium M 1.7GHz
MEM: 2GB
Webカメラ: Logicool QCam Connect
プリンター: インクジェット

1. Visual C++ (オプション)
ここからVisual Studio 2008 Express Editionをダウンロードする。
1.1GBのisoイメージファイルをDAEMON TOOL等でマウントしてインストールする。
Visual C++のみで良い。

2. GLUT
GLUTはOpenGLを手軽にするためのもの。
詳しくは知りません。
glut-3.7.6-bin.zipをダウンロードする。
解凍したら、以下のようにファイルをコピーする。

glut32.dll:C:¥WINDOWS¥system32
glut.h:C:¥Program Files¥Microsoft SDKs¥Windows¥v6.0A¥Include¥gl
glut32.lib:C:¥Program Files¥Microsoft SDKs¥Windows¥v6.0A¥Lib


3. ARToolkit
ここではWindowsバイナリ版をダウンロードするお手軽な方法。
ARToolKit-2.72.1-bin-win32.zipをダウンロードする。
解凍したら、ARToolkitフォルダを好きなところに移動する。

4. Visual Studio起動 (オプション)
Visual C++をスタートメニューから起動する。

「ツール」→「オプション」→「プロジェクトおよびソリューション」→「VC++ディレクトリ」→「ディレクトリを表示するプロジェクト」→「インクルードファイル」を選んで、追加ボタンを押す。

「C:[Installed Path]¥ARToolKit¥include」

次に「ライブラリファイル」を選択して、追加ボタンを押す。

「C:[Installed Path]¥ARToolKit¥lib」

Visual C++を終了する。

5. パターンを印刷
ARToolKit\pattern\pattHiro.pdfを印刷する。
厚手の紙に印刷したほうが良い。

6. サンプル起動とテスト
ARToolKit\bin\simpleLite.exeを起動する。
Webカメラをパターンの正面に合せるとキューブが現れる。
少しずらすくらいなら大丈夫だが、結構すぐ消える。

出にくい場合は、白いテーブルか壁をバックにしたら良い。
それから、指はなるべく紙の端を持つように。



7. タチコマ
ARでタチコマ AR_Tachikoma.zipをダウンロードして、解凍する。
marker_tachikoma.pngを印刷する。
AR_Tachikoma.exeを起動する。


参考
ARToolKitを使った拡張現実感プログラミング
工学ナビの中の人

ラベル: ,

日本で最強の飯屋Top 10をgoogle mapsで

駅しんぼより

2008年4月17日木曜日

AR (拡張現実)の驚愕動画集 Movies

特徴検出(?)、キーボード上にアニメキャラがいて拡大縮小、本をレンズで焼く、机上でダースベーダーが暴れる


机上をアニメキャラが出口に向かって走る


ジャンボ飛行機が通路を飛ぶ

ラベル:

【MySQL】 Administrator:key_bufferが小さすぎて、MySQLが重い。

MySQLがやたら重たい。
ハードディスク・ランプがずっと点灯している。
そこでMySQL Administratorを使って調べる。

まだ、インストールしていない場合は、追加と削除からチェックマークをつけて、変更を適用ボタンを押すだけ。


アプリケーション→プログラミング→MySQL Administratorを選んで起動。
rootユーザ等でログインする。
Health→Memory HealthのKey Efficiencyがずっと100%になっている。
これは、key_bufferのパラメータが小さすぎるからだ。

/etc/mysql/my.cnfを編集する。

[mysqld]
key_buffer = 500M


mysqlを再起動する。

# sudo /etc/init.d/mysql restart


MySQL Administratorをつなぎ直して、Memory Healthを再確認。


ハードディスク・ランプも落ち着いてひとまず安心。

ラベル:

2008年4月16日水曜日

AR (拡張現実)ってなんだ?:Augmented Reality=オーギュメンテッド・リアリティー

Wikipedia:拡張現実より

現実環境にコンピュータを用いて情報を付加提示する技術、および情報を付加提示された環境そのものを示す。


ARを直感的に体験できる動画がある。
まだなら、是非一度!

http://www.youtube.com/watch?v=Y9HMn6bd-v8

現実の世界にバーチャルを乗っけるのがAR。
これはスゴイ!
色々と便利な応用が思いつく。

街のナビゲーション、広告・宣伝、美術館・博物館の案内、商品案内、遠隔地会議とあらゆる場面で応用ができそうだ。

眼鏡かサングラスに投影するディスプレイでバーチャル像をリアルに乗っける。
人間はしょっちゅう首を振るので計算が大変そうだが、なんとかなりそう。

機器類の小型化・省電力化ができればかなり現実的だ。
ハードがクリアできれば、CGM的にコンテンツはできていきそうな気がするが、楽観的?

セカンドライフなどのメタバースは背景からなにからなにまですべて作って描画する必要がある。
それに比べて拡張現実は必要な情報だけを現実に乗っける。
あるいは現実を歪める。

これは案外もうひとつのWebのありかたに将来なる予感がする。

参考:
Artoolkit
PyARTK
http://japan.cnet.com/blog/suzukiken/2008/04/15/entry_27000539/
http://www.4gamer.net/games/033/G003334/20080229057/

ラベル:

2008年4月14日月曜日

【相関くんのブログ】 相関係数の計算方法

株価の相関係数を求める方法で悩んだ。

ここここを参考にしたのだが、相関くんで採用した計算法方をこのエントリーでまとめてみる。

まず、相関係数を求める式はWikipedia相関係数を用いた。
xとyが株価に相当するわけだが、株価と一言で言っても色々ある。
株価には、始値、高値、安値、終値、出来高、調整後終値などがあるが終値あるいは調整後終値(株式の分割等による)に着目する(以下単に終値とする)。
終値をそのまま使わず、前日に比べ何パーセント変化したのか、これを前日比と呼ぶ、を計算で用いる。
すなわち、xとyは終値の前日比となるわけだ。


x: ソニー株価の前日比
y: 松下株価の前日比

一組のサンプルでは相関係数は計算しても仕方がない。
相関くんでは1ヶ月と1年間で相関係数を算出した。

日本の銘柄同士の相関係数はこれで良いが、アメリカのNASDAQやダウなどと日本株の相関係数を求めるときには少しややこしい。
というのは、アメリカの経済指標と日本株の相関係数を調べる目的は、日本銘柄がアメリカ経済にどの程度依存しているのかを知りたいからだ。
となると時差の関係で、日本より1日前のNASDAQを比べることになる。
日米では休日が異なる場合が出てくるが、相関くんでは数日でも遡って計算した。
また、USD/JPYと日本株の相関係数を算出する場合でも同様である。

ラベル: ,

2008年4月11日金曜日

【Java】 遺伝子配列解析GeneBrowser (DNA analyzer)

約4年前に作成したJavaアプリをダウンロードして起動してみた。

このソフトウェアは遺伝子の配列を解析するソフトでバイオ関連の研究に役立てばと思い立ち、作り始めた。
バイオから遠ざかっていたため放置状態だったが、少し気になったので触ってみた。

サイトのURLは
http://genebrowser.hp.infoseek.co.jp/
GeneBrowser
Java言語で開発され、Eclipce RCPを使用している。
OSはWindows、MacOSX、Linux (GTK)に対応している。

Ubuntuでも一応起動したが、問題点がある。
readmeファイルの説明では実行ファイルがgenebrowser.shとなっているが、実際にはgenebrowserになっている。
また、このgenebrowserが実行属性を持っていないので、起動できない。

実行属性をつけると一応起動するが、なぜか2つ起動してしまう。
はて?

ラベル:

【CentOS】 up2dateのGUIが固まってアップデートできない。

放置しつづけて不安定になってきた、CentOSのはなし。

久しぶりにCentOSを開いたら400以上の更新が溜まっている。
GUIから更新しようとしたら、up2dateを先にアップデートしてくださいと言われた。
そこで、up2dateのGUIを起動するも途中でハングアップ。
強制終了して、マシンを再起動。
こういうときは結局コマンドに頼ることになる。

ルートで

# yum -y update up2date


次に/etc/sysconfig/rhn/sourcesを編集してrikenを指定してダウンロードを速くする。

yum centos4-Base http://ftp.riken.jp/Linux/centos/4/os/$ARCH/
yum centos4-Updates http://ftp.riken.jp/Linux/centos/4/updates/$ARCH/
yum centos4-extras http://ftp.riken.jp/Linux/centos/4/extras/$ARCH/
yum centos4-contrib http://ftp.riken.jp/Linux/centos/4/contrib/$ARCH/
yum centos4-addons http://ftp.riken.jp/Linux/centos/4/addons/$ARCH/

ぷちWikiを参考しました。

最後に、一括アップデート。

# up2date -u

ラベル: ,

2008年4月10日木曜日

【JavaScript】 html5.jpライブラリのグラフ描画パフォーマンスについて

html5.jpのライブラリ相関くんのグラフ描画に使わせてもらっている。
とてもよくできていて、綺麗なグラフが簡単に描画できる。
JavaScriptなのでFlashのもっさり感はなく、なかなか軽快だ。

しかし、描画がもたつく場合がある。
色々試したところ、どうやら、水平補助線のなにかに問題があるようだ。
水平補助線を指定しないとあっという間に描画が終わるが、水平補助線を指定するとグラフが描画されるまでPCが数秒間固まる。

本家のサンプルでは水平補助線が指定されているにも関わらず、PCがもっさりすることはないので、特定の条件下でのみ発生する現象だ。

固まった時の条件は
折れ線グラフ、プロット数5〜10、データ小数点(0〜1の間)、水平補助線あり
ブラウザはIEとFirefoxで数秒固まる、CPUはCore2Duo、Pentium Mなど

もし、「html5.jpのライブラリってやたら重たいな〜」と感じたら、水平補助線を無効にしてみてください。
劇的に改善されるかもしれません。

ラベル: ,

2008年4月8日火曜日

Ubuntu v.s. Windows XP/Vista

長年、慣れ親しんできたWindowsだが、UbuntuをPCにインストールしてからWindowsを起動する機会がめっきり減った。

Windowsの最大のライバルと言えば、真っ先にMacOSが思いつく。
Ubuntuを使うようになって、Windowsを起動する動機と言えば、iTunesくらいしかない。
Windowsのライバル会社のソフトを使うためにWindowsを起動するなんて、なんとも皮肉な状況だ。

ただ、すべての面でUbuntuがWindowsに勝っている訳ではない。
個人的な視点だが利点・欠点を整理してみよう。

WindowsがUbuntuに明らかに勝っている点
ハードウェアのサポート
サスペンド、休止状態の安定感
iTunesが使える
MS-Officeが使える
Photoshopが使える
Safariが使える(←やたら高速)

UbuntuがWindowsに明らかに勝っている点
起動時間が早い
アプリのインストールが簡単(慣れればだけど)
OSのインストールも簡単で手軽
LAMPの開発がしやすい
OSが使いやすい

こんなとこでしょうか。

ラベル:

グーグル・トレンド (Google Trends)をXMLで取得する方法

旬なキーワードを取れるグーグルトレンド(Google Trends)。
XMLで取れたらプログラムに使えて便利なんで、調べてみた。

http://www.google.com/m/services/trends/get

snippetタグに簡単な説明が出ている。また、src属性に情報元のアドレス。

ラベル:

【相関くんのブログ】 きもちわるいくらい、2007年に日米の相関強い。

404 Blog Not Found:素朴な疑問 - 緩円安と急円高

これはUSD/JPYと日経平均を並べたものですが、こうも相関が強いと、株を売買しているんだか通貨を売買しているんだかわかりませんね。


実際に、USD/JPYと日経平均の相関係数を2007年1年間で調べると0.45となる (by 相関くん)。
確かに2007年について正の相関関係がありそうだ。
しかし、2004年〜2006年については相関係数が0に近く、相関はないと言えそうだ。

米ドルほどではないにしろ、同じ傾向がNASDAQS&Pダウに言える。

なんでだ?
米資本が日本市場にたくさん入ってたから?
世界的なキャッシュあまり状態ができたから?
安倍政権が終わったから?
福田政権が誕生したから?
う〜ん、よくわからんがきもちわるい。

ラベル:

【相関くんのブログ】 米ドル追加と相関ランクの変更

ドルの変動が日本の株価に与える影響も気になるところ。
そこで、USD/JPYも追加することにした。

相関ランクのページで棒グラフを表示しないことにする。
あまり意味がなさそうだから。

ラベル: ,

2008年4月6日日曜日

【Ubuntu】 ウィンドウを常に最前面に表示

Ubuntuでは任意のウィンドウを最前面に常に表示ができる。

方法はウィンドウバーで右クリックして、「最前面へ」を選ぶだけ。
これで、動画の窓をずっと前面に出せる。

ラベル:

2008年4月4日金曜日

【相関くんのブログ】 αバージョンのリリース

それらしくまとまってきたんで、α版としてリリースしてみる。

相関くん


日本の銘柄間の相関は計算中。しばらくかかりそう。

ラベル: ,

【相関くんのブログ】 日本の銘柄間の相関にも対応しよう。

日米株価の間に相関があるのか気になって始めた相関くんだが、日本の銘柄間の相関も表示できるようにする。

株をやる人はリスク分散とかの理由で持つ株の組み合わせを考えるらしい。

ただ、計算が大変だな〜。なかなか終わりそうにない.

とりあえず、1年間の相関係数だけでも数日かかりそうだ.

ラベル: ,

2008年4月3日木曜日

【Ubuntu】 フリーの英字フォント 300+

300+ Easily Installed Free Fonts for Ubuntuより。

apt-getでインストール可能みたい。

ラベル:

【Python】 BeautifulSoupでGoogle SuggestのXMLをパースする。

以下のアドレスにブラウザ等でアクセスするとGoogle Suggestの結果がXML形式で帰ってくる。
http://google.com/complete/search?output=toolbar&q=microsoft



<?xml version="1.0"?>
<toplevel>
<CompleteSuggestion>
<suggestion data="microsoft office"/>
<num_queries int="116000000"/>
</CompleteSuggestion>
<CompleteSuggestion>
<suggestion data="microsoft.com"/>
<num_queries int="51900000"/>
</CompleteSuggestion>
...



このXMLをPythonで処理する。XMLパーサーとしてBeautifulSoupを用いる。

BeautifulSoupのインストールがまだなら、以下を参考にインストールする。
【Python】 BeautifulSoupでHTML解析

また、httpget.pyを以下を参考に作成する。
【Python】 httpgetの実装

以上の準備が終わったら、getGoogleSuggestionsの実装。

まず、インポートから。


from BeautifulSoup import BeautifulSoup
from httpget import httpget



関数名をgetGoogleSuggestionsとする。


def getGoogleSuggestions(term):
if not term:
return False



続いて、httpgetでXMLドキュメントを取得して、BeautifulSoupでsuggestionタグを探す。


url = 'http://google.com/complete/search?output=toolbar&q=' + term
doc = httpget(url)
soup = BeautifulSoup(unicode(doc, 'utf-8', 'ignore'))
ss = soup.findAll(name='suggestion')



次に、見つかった要素をterms配列に入れていく。


terms = []
for s in ss:
terms.append(s.attrs[0][1])
return terms



使い方は、
terms = getGoogleSuggestions('microsoft')
などとするだけ。
簡単、楽ちん。

ラベル: ,