Use the module: reCAPTHA or Mollom they should do the trick. Personally I like reCAPTCHA (Google) because it is free and it is unlimited, Mollom (created by the Drupal founder) is free but has a limit (enough for a basic website). Mollom is also better I think, it is used by some big companies and websites. For more information just Google on the term: Mollom or search the module directory on Mollom or reCAPTCHA.
The CAPTCHA module works great, very configurable and it does not need an external service, images are created on your server using the GD in Php. http:BL and Bad Behavior are other modules to block crawlers that harass.