The greatest cleaner I've used is called "Winning Colours".
LINK
Last year (August) my wife was out of town for a few days and I decided to be an awesome husband and do a "while you were out" thing and make our baby nursery. We didn't know the sex of the baby so instead of picking one colour I put up a chair rail and painted yellow on top and green on the bottom.
When I was just about finished I spilled a whole gallon of green paint on the beige carpet, talk about a bad feeling! I was up all night scooping paint, then used a carpet steamer/cleaner for over 5 hours (even called in sick to clean it the next day). I was left with this.
I tried everything Canadian Tire & Walmart had from Oxy clean to Spot Shot, nothing worked. Four days later I went to Benjamin Moore Paints where a guy swore by Winning Colours (you can now find it at Canadian Tire), I figured what could I lose?
The stuff is AMAZING! It was now 4 days and dozens of cleaners later and I figured the stain was dry and set in for life. I sprayed it over the whole stain and let it sit about 15 seconds, then just blotted it up with a white rag, no scrubbing just blotting. This picture was taken right after cleaning (the carpet is still wet, so looks a bit dark).
When she got home my wife was ecstatic by the nursery. I told her I spilled green paint on the carpet and asked to to find it, she couldn't and would not believe me it happened until I showed her the pictures.
***The only warning I have is the stuff stinks to high heaven! You really need to be able to air out wherever you use it*** However once dry there is no smell at all.
This past Labour day my wife spilled somekind of blueberry dessert in our SUV, it took the purple stain completely out of light grey carpet. I also used it on an old pair of "work around the house jeans" and it took out paint and an oil stain from years before. Great stuff.