AkismetのスパムフィルタをpythonとDjangoで実装 - 株式会社CoLabMix

AkismetのスパムフィルタをpythonとDjangoで実装

AkismetはスパムフィルタリングサービスでAutomattic社によって提供されています。
Automattic社はWordPressへの貢献で有名な会社で、AkismetもWordPressのスパムフィルタのプラグインとして有名です。

スパムフィルタとしては非常に強力なツールなのでこちらをWordPress以外でも利用できるよう、PythonとDjangoで実装してみます。

尚、AkismetのIDの取得は今回は触れませんが以下のURLで行ってください。

https://akismet.com/signup/

プランが複数ありますので商用などの利用では適したプランを選択してください。

 

Akismetのライブラリのインストールと実装

今回は以下のpipのライブラリを使用します。

https://pypi.org/project/akismet/

マニュアルは以下にあります。

https://akismet.readthedocs.io/en/1.1/

インストールは以下のコマンドで行います。

サンプル用のプログラムは以下になります。

「comment_check」では引数としては「IPアドレス」と「ユーザーエージェント」を渡しています。

戻りとしてTrue、Falseが返ってきてスパムと判定されるとTrueが戻ります。

こちらをコマンドラインから実施すると以下のようになります。

この他に「submit_spam」と「submit_ham」という2つのメソッドがあります。

「submit_spam」はメッセージがスパムだった時に報告を行うメソッドです。

「submit_ham」は逆にスパムでないものがTrueで帰ってきた時に報告を行うメソッドです。

基本的な使い方はこちらになります。

 

Djangoでの実装

以下はDjangoでの実装です。

シンプルではありますが、Djangoでお問い合わせフォームなどを作成するとスパムチェックなどが難点になってしまうのでこちらで対応が可能となります。

 

このブログは株式会社CoLabMixによる技術ブログです。

GCP、AWSなどでのインフラ構築・運用や、クローリング・分析・検索などを主体とした開発を行なっています。

Ruby on RailsやDjango、Pythonなどの開発依頼などお気軽にお声がけください。

開発パートナーを増やしたいという企業と積極的に繋がっていきたいです。

お問い合わせやご依頼・ご相談など

    関連記事

    1. autditbeatをcentos7にインストールして監査ログをとって…

    2. 第24回Elasticsearch勉強会「入門編」 に参加してみた

    3. ZABBIXのアラートをSlackに飛ばす

    4. Elasticsearchでエイリアスの作成

    5. curlでSSL接続しようとすると「curl: (35) SSL co…

    6. Firefoxの「RESTClient」からPOSTの値の送信