04 November
2006

mixi python ライブラリ

ふとしたきっかけで、 liris さんのところで公開されているMIXI Pythonライブラリを使おうと、最新版(0.0.8)をダウンロードしたのですがうまく動きませんでした。mixiをいじりすぎると怒られるというエントリで質問をしてみたところ、この版の後にmixiでレイアウト変更があったのか、今は使えないとのこと。
ちょうど shunuhs さんのsh1.2 pyblosxom : pythonでスクレイピングを読んだところでBeautifulSoupを使ってみたかったので、早速 BeautifulSoup を使って mixi.py に手を入れてみました。とりあえず元の mixi.py が持っていた API が一通り使えるようになったので、
http://matatabi.homeip.net/app/pymixi-0.1.tar.gz
にて公開します。

なお、これを使うためには BeautifulSoup が必要となり、BeautifulSoup を使うためには Universal Encoding Detecterが必要となります。また、動作は Python 2.3.4 on Vine Linux 3.2 と Python 2.3.5 on MacOSX 10.4.8 とでしか確認していません。


それぞれの API を使用するためのテストスクリプトを同梱していますので、とりあえずそちらの説明を。

- mixidiary2txt.py: マイミクシィ最新日記一覧表示

mixidiary2txt.py -u MAILADDRESS -p PASSWORD

と実行します。 MAILADDRESS, PASSWORD はそれぞれ mixi のログインに使っているメールアドレスとパスワードです。これは liris さんの書いてたのがほぼそのままです、いくつかオプションが渡せるので、 -h でヘルプを見て下さい。

- friend_diary.py: 日記表示
friend_diary.py MAILADDRESS PASSWORD MIXIID

と実行します。MIXIIDは mixi における ID で数字です。今は mixi 内で日記を書いている人のみが対象となります。

- show_log.py: 足あと表示
show_log.py MAILADDRESS PASSWORD

と実行します。

- list_friend.py: ミクシィ一覧表示
list_friend.py MAILADDRESS PASSWORD [MIXIID]

と実行します。 MIXIID を与えるとその人のミクシィ一覧、省くとマイミクシィの一覧が表示されます。

- profile.py: プロフィール表示
profile.py MAILADDRESS PASSWORD [MIXIID]

と実行します。 MIXIID を与えるとその人のプロフィール、省くと自分のプロフィールが表示されます。

- image.py: プロフィール画像の取得
image.py MAILADDRESS PASSWORD [MIXIID]

と実行します。 MIXIID を与えるとその人のプロフィール画像、省くと自分のプロフィール画像を実行したディレクトリに保存します。

Posted by setomits at 00:15 | Comments (0) | Trackbacks (0)
Re: mixi python ライブラリ

python2.4.4.c1 on Ubuntu Linux (Edgy Eft)でも動作確認しました。
(aptでpython-beautifulsoupを先に入れておくだけで良かったです。)
あざっす!これでmixiのネットワークの解析ができます。
pythonを始めたばかりなので、ソースを見て勉強させていただきます。
それでは。

Posted by: ahf at December 30,2006 15:10
profile.pyのエラー

profile.pyだけエラーが出てしまったので、一応報告しておきます。
(他の.pyはうまくいきましたが。)
以下がエラー内容です。

---

Traceback (most recent call last):
File "./profile.py", line 30, in ?
l = m.get_profile(target)
File "/home/ahf/pymixi-0.1/mixi.py", line 341, in get_profile
trs = table.findAll("tr")
AttributeError: 'NoneType' object has no attribute 'findAll'

---
エラーの理由が分かりますでしょうか?
自分でもコードを読みながら調べてみたいと思います。

Posted by: ahf at December 30,2006 15:48
Re: mixi python ライブラリ

> ahf さん
最近まるで mixi.py を触っていませんでした。この休みの間にはなんとか...。
とりあえずご報告ありがとうございます。調査します。

Posted by: setomits at December 31,2006 16:41
Please send trackback to:http://matatabi.homeip.net/blog/setomits/825/tbping
当ブログへのリンクを含まないトラックバックは削除します。
If no reference exists, that trackback will not be received.
Pythonでミクシィ日記に投稿

ミクシィ日記はチラシの裏扱いしているので「友人まで公開」にしている。でもそうしてると数少ないマイミク達はどうしようもないチラ裏日記ばかり読んでしまってこのブログを全然読んでくれない為、僕について「このゲス野郎め!」みたいな印象しか受けなくなってしまうという問題が考えられる。これは大問題!!...

Posted by: DaemonFreaks Blog at November 12,2006 18:42
Post a comment