クローリング始めました

webの文章データを扱いたいなと思って、色々と試してみたけど、うまくいかない。
Pythonコードを自分で書いてみて、たしかにうまくいったし、文章の獲得もできたが、例えばそのページがローカル内にたくさんのサブページを持っていた場合。

いちいちルールを書くのも面倒だ
正規表現でなんとか解決してる人もいるみたいだが)

なので、すでに多く使われているスクリプトがないか?と思って探してみると。。。


あったあった。
Pythonではwebstemmerというのとpython-crawlerというのが二大巨塔らしい。

とりあえずはwebstemmerというのを使ってみようと試してみる。

webstemmerのページには「インストールとか何もいらない」って書いてあるけど、落としてきたファイルには明らかにMakefileあるし、Setup.pyっていうスクリプトまで置いてある。

これはインストールなさい。ってことだと解釈するのが正しい。

で、インストールするとコマンドがどこでも通るようになる。(たぶんパス通しも自動でやってくれたんだろう)

自分の場合は /usr/local/bin/ にパスが通っていた。


で、さっそく説明通りにやってみると。。。手に入れたファイルは文字化けしてしまった。そこで

http://d.hatena.ne.jp/ir_takt/20110712/1310446401

の説明を見て、extract.pyを実行するときのコマンドをちょっと変えてみる。

$ extract.py -c shift-jis -C utf-8 test.pat test.201209071441.zip > test.txt

この-cと-Cがミソ。

本当なら対象ページの文字コードを読んで欲しいところなんだけど、、まあ仕方ない。


できたファイルが文字化けする場合は-c 以下をその都度、euc-jpとかutf-8とかshift-jisとかに変えてみるといいだろう。
(なんらかの手段で事前に判別してもいいと思うけど)


コマンドの参考
http://kjirou.sakura.ne.jp/mt/2009/05/python_webstemmer_1.html


※ Macは相変わらず〜が足りない〜が足りないエラーが頻発したので、Ubuntuで一発キメました。


※サーバーで動かすときは管理者権限ないので、0.6.1を使っているけど、特に問題ないみたい