IMO you should use a captcha, such as:
Uses the Google reCAPTCHA web service to improve the CAPTCHA system and protect email addresses.
OR
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.