How would you counter a player that buys a crapload of nobles?
buying them first?
swindle away his nobles for gold?
Spamming villages it not a way to beat any deck.
Besides Spy+Swindler, there's:
Tribute (huge when it hits, though it can be less good; also good with Spy)
Saboteur (also good with Spy)
Of course, if you're playing on BSW, 2 of those options aren't available.