クローリング始めました
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を使っているけど、特に問題ないみたい