IMO you should use a captcha, such as:
reCAPTCHA
Uses the Google reCAPTCHA web service to improve the CAPTCHA system and protect email addresses.
OR
Draggable Captcha
Here is an instruction video on how to set it up Drupal 7 Draggable Captcha - a more friendly way to prevent Spam
If spam still happening, which means they are indeed human and not bots, you could implement a point system. Where users need to gain points by doing something (login x amount of days or comment x amount of times etc..) To create nodes, users need to have x amount of points.
In addition, you could also implement spam flags, where users can flag content as spam and have the content be auto deleted if x amount of flags are raised.