Detect spam comments in Django: comments-spamfighter

A while ago I updated this website to Django 1.1 and replaced my self-made comment system in favor of Django's contrib.comments. This comment-system comes with a built-in anti spam feature; a hidden field. And even though this field has a more or less stupid name honeypot, enough spam comments seems to get caught by it.

However, at the end I get around 5-10 additional spam comments each day, which get not caught, so I've written a comments moderation class django-comments-spamfighter that does two things:

  • Check incoming comments against the Akismet spam database and either block them directly or add them to the moderation queue.
  • Check incoming comments against pre-defined keywords and either block them directly or add these them to the moderation queue. These keywords can be simple strings or powerful regular expressions.

While I'm not so happy with Akismet as it has about 10% false positives here, the keyword stuff is very powerful. Most spam comments here contain typical words like viagra or nude which get easily caught.

django-comments-spamfighter is available via pypi:

easy_install pip
pip install django-comments-spamfighter

The repository is located on Bitbucket but there is a Github mirror as well (It's synced with my Bitbucket repo). Oh, and there is a documentation! :-)


  • Thomas Oct. 8, 2009

    This is nice article. I`m realy interesting what exacly is that honeypot ?


Comments closed

Sorry, new comments are no longer allowed for this entry.

Write me an email if you have feedback or any questions regarding this post. If you found this post useful and just want to say thank you then don't forget that I have an Amazon Wishlist. :-)


↑ to the elevators

© 2001—2010 Martin Mahner. This is an I ♥ Django Project.

Admin | Generated: Sun, 25 Jul 2010 03:31:30 +0200