Xangoディストリビューションにrobots.txtの処理モジュールが同梱されてない理由

| コメント(0) | トラックバック(0)



「Xangoがデフォルトの状態でrobots.txtをハンドルできるといいのにー」って結構聞く。俺もその期待には応えたいとは思うのだけどこれが実はなかなか難しい。なんでかというと、robots.txtの処理は意外と難しいから(笑)


というのも、パースしたりなんだりはいいのだけど、大量のrobots.txtデータを保存しつつ、高速で適用するというのが結構知恵がいる上にアプリケーションのコンテキストによって大分処理が違うのですな。某サービスの場合は実はrobots.txtの処理は全てデータベース上で行っている。Perlでやってるとメモリ食うし、遅いんだもん。


でもじゃあそれを一般化できるかというと、少なくとも俺のやってるやりかたではできない。っていうか、PostgreSQLのストアドプロシージャをガリガリガリガリ使っているからなんだなー。同じロジックをSQLiteでやれと言われてもできん・・・


ちなみにLWPに入ってるWWW::RobotRulesはとても参考になるが、あれはメモリを食いまくる。WWW::RobotRules::AnyDBM_Fileはメモリを食わないが、どちらにしろ取得してきたrobots.txtをリニアースキャンするので使えない。100万件あったら、それをリニアースキャンするんですよ、奥さん!


ってことで難しい。何か一般化できるいいアイデアはないもんかね。


Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ