Pythonで同人巡回サービスを作ってみた

僕がプログラミングを初めて、早一年と一ヶ月が経ちました。
How To Become A Hackerに影響されて HTMLって何?というレベルからC, JavaScript, PHP, Lisp, Pythonと味見をしていき今に至ります。

そろそろアウトプットしなければと思い、作りました。 その名も

同人宇宙」!!

はい。すいません。ただのしょうもないエロサイトです。
これは、ネットに転がっている同人誌へのリンクとそのサムネイルを自動で収集して 管理するサービスです。宇宙中の同人誌の情報を収集するという意味でこう名づけました。 三秒くらいで思いつきました。

構成

スクレイピングにはBeautifulSoup、WebフレームワークにはBottleを使用しています。
Pythonを触るのが初めてだったので、一番簡単そうなBottleを使ったのですが、 正直これは失敗でした。
Bottleは

@bottle.route('/')
@bottle.view('index')
def index():
    return dict(hoge='fuga')

みたいな感じで簡単にルーティングできるのでこれでいいや、と 決めてしまったのですが、Bottleにはモデル層がほとんどないので全部自分で 実装することになってしまいました。

スクレイピング用のロボットも最初はScrapyというPython製のスクレイピングフレームワークを使ってサクサク作ろうと思ったのですが、 なぜか50%ぐらいの確率でしかスクレイピングしてくれなくてやめました。(完全に自分のせい)
サムネイルの作成には、PILを使用しています。
Pythonは探せば、だいたい目的に合う素晴らしいライブラリが見つかるので本当に助かります。

同人サイトの登録はこんな感じでJSONで簡単に登録できるようにしました。

{
    "name": "同人ほげほげ",
    "url": "http://dojin-hoge.com",
    "dojin_wrapper": "div.dojin",
    "dojin_title": "div.title",
    "dojin_url": "dojin.url",
    "dojin_img": 'img'
}

サーバー環境はGMOVPSサービスのCentOSです。GMOはあんまり評判が良くないようですが、 今のところ不満はありません。
WSGIサーバーにはgunicorn、フロントにはnginxを使用しています。特にチューニングとかは していないのですが、非常に高速で驚きです。
製作期間は約二週間で、週末に一気に作りました。

まとめ

作ってみて思ったのはやはりエロ+プログラミングは楽しい!ということです。
男なら誰でも好きなものを作るんですから当たり前ですね。
でも、次はもう少しまじめなものを作ろうかなと思います。
最後に、

違法アップロードはダメ絶対!!!