D.K.
She is old enough to start problem solving before a tantrum. Can you tell she will have one when you say no but before she is out of control? If so - I would try discussing it with her. DD - you want to watch tv but I need to go to the store to buy groceries, how can we do this. Listen to her ideas. Maybe she will say, ok, let's go to the store and record my show. Maybe she will say, ok but I want to watch a different show later. Maybe she will not have a solution but at least she will feel like she has been heard. Clearly punishing her is not working so I would try something else.
Addressing AmyJ's concerns:
Problem solving alleviates tantrums because tantrums are just a demonstration of frustration. DD needs a way AROUND her frustration and you need to teach that to her. Punishing her for being angry is not going to make her less angry. Giving her tools to express that anger and to avoid that anger by getting what she needs (not necessarily what she wants and not necessarily right now - sometimes that will just be being heard and understood, not actually getting the 'thing') will make her tantrums unnecessary. I have yet to meet a child that enjoys having tantrums so if you give her the tools, they will eventually stop.
Spanking teaches that hitting people smaller than you is ok (also that it's ok to hit and be hit by the people you love). It does not teach skills like negotiation, learning to delay gratification and compromise.